সিরিজ যোগফল সমস্যা
সিরিজ: 1 + 2 + 2 + 3 + 3 + 3 + ... + n (প্রতিটি সংখ্যা iExact i বার এসে থাকে)। প্রথম n পদ পর্যন্ত যোগফল বের করতে হবে।
উদাহরণ: n = 4 → 1 + 2+2 + 3+3+3 + 4+4+4+4 = 30
পদ্ধতি ১: নেস্টেড লুপ (O(n²))
int calcSeriesSum(int n) {
int sum = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= i; j++)
sum += i;
return sum;
}
পদ্ধতি ২: একক লুপ (O(n))
যেহেতু i যোগ হচ্ছে i বার, তাই i² যোগ করা সমান।
int calcSeriesSum(int n) {
int sum = 0;
for(int i = 1; i <= n; i++)
sum += i * i;
return sum;
}
পদ্ধতি ৩: গাণিতিক সূত্র (O(1))
যোগফল = 1² + 2² + 3² + ... + n² = n(n+1)(2n+1)/6
int calcSeriesSum(int n) {
return (n * (n + 1) * (2 * n + 1)) / 6;
}
C++ কোড উদাহরণ
#include <iostream>
using namespace std;
int calcSeriesSum(int n) {
return (n * (n + 1) * (2 * n + 1)) / 6;
}
int main() {
int n = 7;
cout << "The sum of series till " << n << " is " << calcSeriesSum(n);
return 0;
}
আউটপুট
The sum of series till 7 is 140