এই সমস্যায়, আমাদের একটি সংখ্যা n দেওয়া আছে যা সিরিজ 1¹ + 2² + 3³ + … + nⁿ-এর nth টার্ম নির্ধারণ করে। আমাদের কাজ হল সিরিজের যোগফল বের করার একটি প্রোগ্রাম তৈরি করা।
উদাহরণ দিয়ে বোঝা যাক
ইনপুট
n = 4
আউটপুট
30
ব্যাখ্যা - যোগফল = (1¹) + (2²) + (3³) + (4⁴) = 1 + 4 + 27 + 256 = ২৮৮। (মূল টেক্সটে ১+৪+৯+১৬=৩০ লেখা আছে যা ভুল, কারণ ৩³=২৭ এবং ৪⁴=২৫৬।)
এই সমস্যা সমাধান করতে, আমরা 1 থেকে n পর্যন্ত লুপ চালাব। প্রতিটি সংখ্যার ঘাত বের করব। এবং সেগুলো যোগফল ভেরিয়েবলে যোগ করব।
আলগরিদম
যোগফল = 0 আরম্ভ করুন
ধাপ ১: i = 1 থেকে n পর্যন্ত ইটারেট করুন। এবং অনুসরণ করুন:
ধাপ ১.১: যোগফল আপডেট করুন, sum += i*i
ধাপ ২: যোগফল প্রিন্ট করুন।
C++ প্রোগ্রাম উদাহরণ
#include <iostream>
using namespace std;
long long calcSeriesSum(int n) {
long long sum = 0;
for( int i = 1; i <= n; i++ )
sum += (i*i);
return sum;
}
int main() {
int n = 7;
cout<<"Sum of the series 1^1 + 2^2 + 3^3 + ... + "<<n<<"^"<<n<<" is "<<calcSeriesSum(n);
return 0;
}
আউটপুট
Sum of the series 1^1 + 2^2 + 3^3 + ... + 7^7 is 140
নোট: প্রদত্ত উদাহরণে ১¹+২²+৩³+৪⁴ = ১+৪+২৭+২৫৬ = ২৮৮ হওয়া উচিত, কিন্তু আউটপুটে ৩০ দেখানো হয়েছে যা ১²+২²+৩²+৪² = ৩০-এর সমান। সমস্যাটির tiêuতলে "1^1 + 2^2 + 3^3 + ... + n^n" লেখা থাকা সত্ত্বেও কোডে i*i (বর্গ) ক্যালকুলেট করা হয়েছে।