Thursday, July 20, 2017

1068 (Sum) Timus Problem Solution & Logic

https://timus.spatarel.ro/problem.aspx%3Fspace=1&num=1068



খুবই সহজ , একটা প্রোবলেম । তোমাকে  , N এর মান দেয়া থাকবে ।তোমায় ১ থেকে N  অবদি সকল নাম্বার যোগ করে , তার যোগফল দিতে হবে । N যদি , পসিটিভ হয় - তাহলে তো কথাই নেই - (N*(N+1))/2  সুত্র খাটাবো , এখন যদি - N এর মান নেগেটিভ হয় , তাহলে - কি করবে ??
ধরো , দেয়া থাকলো -  N = -5, তাহলে- তোমায় যোগ করতে হবে ,১ + -১ + -২ + -৩ + -৪ + -৫ । এখন ,
-১ + -২ + -৩ + -৪ + -৫ যোগ করার সুত্র হইলো -   N*(1-N)/2  ,কিন্তু - ১ যেহেতু যোগ থাকবেই , সুতরাং 
সুত্রটি হবে -    1+ N*(1-N)/2  | চলো , কোড দেখি ফেলি ----

 #include<iostream>
#include<cstdio>

using namespace std;

//Nayeem Mollick Joy ,Applied Physics & Electronic Engineering ,University of Rajshahi.


    int main ()
{
    int n;

    while ( scanf ("%d", &n) != EOF ) {

        int  sum=0;

        if ( n <= 0 ) {
            sum=(n*(1-n)/2)+1;
        }
        else {
            sum=(n*(n+1))/2;
        }

        printf ("%d\n", sum);
    }

    return 0;
}















No comments:

Post a Comment