Tính tổng S = Σ_{i=1}^n i(i+1)(i+2).
Ví dụ
n = 5: 1*2*3 + 2*3*4 + 3*4*5 + 4*5*6 + 5*6*7 = 6 + 24 + 60 + 120 + 210 = 420.
Cách 1: Vòng lặp (O(n))
int calcSeriesSum(int n) {
int sum = 0;
for (int i = 1; i <= n; i++)
sum += i * (i+1) * (i+2);
return sum;
}
Cách 2: Công thức toán học (O(1))
Khai triển:
i(i+1)(i+2) = i^3 + 3i^2 + 2i Σi^3 = [n(n+1)/2]^2 Σi^2 = n(n+1)(2n+1)/6 Σi = n(n+1)/2
Tổng quát:
S = n(n+1)(n+2)(n+3) / 4
Cài đặt C++ (Cách 2)
#include <iostream>
using namespace std;
int calcSeriesSum(int n) {
return n * (n + 1) * (n + 2) * (n + 3) / 4;
}
int main() {
int n = 7;
cout << "Tong chuoi den " << n << " la " << calcSeriesSum(n);
return 0;
}
Output
Tong chuoi den 7 la 1260
So sánh
| Cách | Độ phức tạp | Lưu ý |
|---|---|---|
| Vòng lặp | O(n) | Đơn giản, dễ hiểu |
| Công thức | O(1) | Hiệu quả cho n lớn, cần chú ý tràn số (dùng long long) |