এখানে, আমাদের একটি ইন্টিজার n দেওয়া আছে। এটি সিরিজ 1/1 + ( (1+2)/(1*2) ) + ( (1+2+3)/(1*2*3) ) + … + n টার্ম পর্যন্ত নির্ধারণ করে।
আমাদের কাজ হল সিরিজ 1/1 + (1+2)/(1*2) + (1+2+3)/(1*2*3) + … n টার্ম পর্যন্ত যোগফল বের করার একটি প্রোগ্রাম তৈরি করা।
উদাহরণ দিয়ে বোঝা যাক
ইনপুট
n = 3
আউটপুট
3.5
ব্যাখ্যা - (1/1) + (1+2)/(1*2) + (1+2+3)/(1*2*3) = 1 + 1.5 + 1 = 3.5
এই সমস্যা সমাধানের একটি সহজ পদ্ধতি হল 1 থেকে n পর্যন্ত লুপ চালানো। তারপর, i পর্যন্ত যোগফলকে i পর্যন্ত গুণফল দিয়ে ভাগ করে যোগফলে যোগ করা।
আলগরিদম
রেজাল্ট = 0.0, যোগফল = 0, গুণফল = 1 আরম্ভ করুন
ধাপ ১: i = 0 থেকে n পর্যন্ত ইটারেট করুন। এবং অনুসরণ করুন:
ধাপ ১.১: যোগফল এবং গুণফল আপডেট করুন অর্থাৎ sum += i এবং prod *= i
ধাপ ১.২: রেজাল্ট আপডেট করুন result += (sum)/(prod)।
ধাপ ২: রেজাল্ট প্রিন্ট করুন।
C++ প্রোগ্রাম উদাহরণ
#include <iostream>
using namespace std;
double calcSeriesSum(int n) {
double result = 0.0 ;
int sum = 0, prod = 1;
for (int i = 1 ; i <= n ; i++) {
sum += i;
prod *= i;
result += ((double)sum / prod);
}
return result;
}
int main() {
int n = 12;
cout<<"Sum of the series 1/1 + (1+2)/(1*2) + (1+2+3)/(1*2*3) + ... upto "<<n<<" terms is "
<<calcSeriesSum(n) ;
return 0;
}
আউটপুট
Sum of the series 1/1 + (1+2)/(1*2) + (1+2+3)/(1*2*3) + ... upto 12 terms is 4.07742