সিরিজ যোগফল সমস্যা
সিরিজ: 1×2×3 + 2×3×4 + 3×4×5 + ... + n(n+1)(n+2)। এই সিরিজের প্রথম n পদের যোগফল বের করতে হবে।
উদাহরণ: n = 5 → 6 + 24 + 60 + 120 + 210 = 420
সমাধান ১: লুপ ব্যবহার (O(n))
int calcSeriesSum(int n) {
int sumVar = 0;
for(int i = 1; i <= n; i++)
sumVar += i * (i+1) * (i+2);
return sumVar;
}
সমাধান ২: গাণিতিক সূত্র (O(1))
সাধারণ পদ: n(n+1)(n+2) = n³ + 3n² + 2n
যোগফল সূত্র:
Σn³ + 3Σn² + 2Σn = [n(n+1)/2]² + 3[n(n+1)(2n+1)/6] + 2[n(n+1)/2]
সরলীকরণে পাওয়া যায়: n(n+1)(n+2)(n+3) / 4
int calcSeriesSum(int n) {
return (n * (n + 1) * (n + 2) * (n + 3)) / 4;
}
C++ কোড উদাহরণ
#include <iostream>
using namespace std;
int calcSeriesSum(int n) {
return (n * (n + 1) * (n + 2) * (n + 3)) / 4;
}
int main() {
int n = 7;
cout << "The sum of series till " << n << " is " << calcSeriesSum(n);
return 0;
}
আউটপুট
The sum of series till 7 is 1260