এই সমস্যায়, আমাদেরকে একটি সংখ্যা দেওয়া হয়েছে n যা সিরিজের nম পদ 1/(1*2) + 1/(2*3) +…+ 1/(n*(n+1))। আমাদের কাজ হল সিরিজের যোগফল খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট
n = 3
আউটপুট
0.75
ব্যাখ্যা − যোগফল =1/(1*2) + 1/(2*3) + 1/(3*4) =½ + ⅙+ 1/12 =(6+2+1)/12 =9/12 =¾ =0.75
সমস্যার একটি সহজ সমাধান লুপ ব্যবহার করা হয়. এবং সিরিজের প্রতিটি উপাদানের জন্য কমিউটিং মান। তারপর যোগফলের মানের সাথে যোগ করুন।
অ্যালগরিদম
Initialize sum = 0 Step 1: Iterate from i = 1 to n. And follow : Step 1.1: Update sum, sum += 1/ ( i*(i+1) ) Step 2: Print sum.
উদাহরণ
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
#include <iostream> using namespace std; double calcSeriesSum(int n) { double sum = 0.0; for (int i = 1; i <= n; i++) sum += ((double)1/(i*(i+1))); return sum; } int main() { int n = 5; cout<<"Sum of the series 1/(1*2) + 1/(2*3) + 1/(3*4) + 1/(4*5) + ... is "<<calcSeriesSum(n); return 0; }
আউটপুট
Sum of the series 1/(1*2) + 1/(2*3) + 1/(3*4) + 1/(4*5) + ... is 0.833333
এই সমাধানটি খুব বেশি কার্যকর নয় কারণ এটি লুপ ব্যবহার করে।
সমস্যা সমাধানের জন্য একটি কার্যকর পদ্ধতি হল সিরিজের যোগফলের জন্য সাধারণ সূত্র ব্যবহার করা।
The series is 1/(1*2) + 1/(2*3) + 1/(3*4) + 1/(4*5) + … n-th terms is 1/n(n+1). an = 1/n(n+1) an = ((n+1) - n) /n(n+1) an = (n+1)/n(n+1) - n/ n(n+1) an = 1/n - 1/(n+1) sum of the series is sum = 1/(1*2) + 1/(2*3) + 1/(3*4) + 1/(4*5) + … Changing each term as in above formula, sum = 1/1 - ½ + ½ - ⅓ + ⅓ - ¼ + ¼ -⅕ + …. 1/n - 1/(n+1) sum = 1 - 1/(n+1) sum = (n+1 -1) / (n+1) = n/(n+1)
উদাহরণ
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
#include <iostream> using namespace std; double calcSeriesSum(int n) { return ((double)n/ (n+1)); } int main() { int n = 5; cout<<"Sum of the series 1/(1*2) + 1/(2*3) + 1/(3*4) + 1/(4*5) + ... is "<<calcSeriesSum(n); return 0; }
আউটপুট
Sum of the series 1/(1*2) + 1/(2*3) + 1/(3*4) + 1/(4*5) + ... is 0.833333