এই সমস্যায়, আমাদের তিনটি সংখ্যা a, d, এবং n দেওয়া হয়েছে। আমাদের কাজ হল C++ এ হারমোনিক সিরিজের যোগফল খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা।
হারমোনিক অগ্রগতি একটি সিরিজ যার বিপরীত একটি গাণিতিক অগ্রগতি হবে। অর্থাৎ যদি একটি সুরেলা অগ্রগতির জন্য A1, A2, A3.. An, একটি গাণিতিক অগ্রগতি 1/A1, 1/A2, 1/A3 আছে৷
সুতরাং, একটি সাধারণ HP হল
1/a, 1/(a+d), 1/(a+2d), … 1/(a + nd)
যেখানে 1/a প্রথম পদ। এবং d হল বিপরীত AP-এর সাধারণ পার্থক্য।
সমস্যা বর্ণনা − এখানে, আমাদেরকে প্রথম পদ a, সাধারণ পার্থক্য d এবং পদের সংখ্যা n দেওয়া হবে। HP এর এবং আমাদের এর যোগফল খুঁজে বের করতে হবে।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক
ইনপুট
a = 3, d = 2, n = 5
আউটপুট
0.878211
ব্যাখ্যা
HP হল ⅓, ⅕, 1/7, 1/9, 1/11৷
Sum = ⅓ + ⅕ + 1/7 + 1/9 + 1/11 = 0.878211
সমাধান পদ্ধতি
আমরা এই nম পদটি পুনরাবৃত্তি করব এবং HP-এর প্রতিটি পদের মান খুঁজে বের করব এবং sumVar-এ যোগ করব। এবং শেষে sumVal ফেরত দিন।
অ্যালগরিদম
শুরু করুন − sumVal =0, term =0;
- ধাপ 1 i -> 1 থেকে n
- এর জন্য লুপ
- ধাপ ১.১ − শব্দটি খুঁজুন, পদ =1/( a + (i-1)*(d).
- ধাপ ১.২ − sumVal, sumVal +=টার্ম আপডেট করুন।
- ধাপ 2 − প্রিন্ট sumVal.
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম
উদাহরণ
#include <iostream> using namespace std; float findSeriesSum(int a, int d, int n){ float sumVal = 0; float term = 0; for(float i = 1; i <= n; i++){ term = (1.0)/(float)(a + (i-1)*d); sumVal += term; } return sumVal; } int main(){ int n = 5, a = 3, d = 2; cout<<"The sum of HP is "<<findSeriesSum(a, d, n); return 0; }
আউটপুট
The sum of HP is 0.878211
আরো একটি পদ্ধতি যোগফল খুঁজে বের করতে পুনরাবৃত্তি ফাংশন ব্যবহার করা হতে পারে।
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম
উদাহরণ
#include <iostream> using namespace std; float findSeriesSum(int a, int d, int n){ if(n == 1){ return (float)(1.0)/a; } float term = (1.0)/ (float)(a + (n-1)*d); return term + findSeriesSum(a, d, n-1); } int main(){ int n = 5, a = 3, d = 2; cout<<"The sum of HP is "<<findSeriesSum(a, d, n); return 0; }
আউটপুট
The sum of HP is 0.878211