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;
}
খুবই সহজ , একটা প্রোবলেম । তোমাকে , 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