এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যার মান দেওয়া হয়েছে। আমাদের কাজ হল n পদ পর্যন্ত সিরিজ 1 - 2 + 3 - 4 + 5 - 6 + 7 এর যোগফল খুঁজে বের করা .
সিরিজটি হল 1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 + 9 - 10...
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
Input : N = 4 Output : -2
ব্যাখ্যা −
1 - 2 + 3 - 4 = -2
সমাধান পদ্ধতি
সমস্যা সমাধানের একটি সহজ পদ্ধতি হল সিরিজের সাধারণ পদ খুঁজে বের করা এবং তারপর n পদ পর্যন্ত যোগফল খুঁজে বের করা। এবং সূত্র ব্যবহার করে যোগফল গণনা করলে O(1) সময় কমে যাবে।
সিরিজটি হল,
1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 + 9 - 10...
আসুন কিছু মানের জন্য সিরিজের যোগফল বের করি,
যোগফল(1) =1
যোগফল(2) =1 - 2 =-1
যোগফল(3) =1 - 2 + 3 =2
যোগফল(4) =1 - 2 + 3 - 4 =-2
যোগফল(5) =1 - 2 + 3 - 4 + 5 =3
যোগফল(6) =1 - 2 + 3 - 4 + 5 - 6 =-3
যোগফল(7) =1 - 2 + 3 - 4 + 5 - 6 + 7 =4
যোগফল(8) =1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 =-4
এখানের জন্য, আমরা উপসংহারে আসতে পারি যে যোগফলকে এইভাবে প্রণয়ন করা যেতে পারে,
যোগফল =+(n+1)/2 যদি n বিজোড় হয়।
যোগফল =-(n)/2 যদি n জোড় হয়।
উদাহরণ
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম
#include<iostream> using namespace std; int calcSumNTerms(int n) { if(n%2 == 0) return ((-1)*(n/2)); return ((n+1)/2); } int main() { int n = 156; cout<<"The sum of series upto n terms is "<<calcSumNTerms(n); return 0; }
আউটপুট
The sum of series upto n terms is -78