Tìm tổng của các tổng: S = Σ(1) + Σ(1+2) + Σ(1+2+3) + ... + Σ(1+...+n)
Ví dụ n = 4
- Tổng đến 1: 1
- Tổng đến 2: 1+2=3
- Tổng đến 3: 1+2+3=6
- Tổng đến 4: 1+2+3+4=10
- Kết quả: 1+3+6+10 = 20
Phương pháp 1: Vòng lặp lồng (không hiệu quả)
#include <stdio.h>
int main() {
int n = 4, sum = 0, s = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) s += j;
sum += s;
}
printf("Tong = %d", sum);
return 0;
}
Phương pháp 2: Công thức toán học (hiệu quả)
S = n(n+1)(n+2)/6
#include <stdio.h>
int main() {
int n = 4;
int sum = n * (n + 1) * (n + 2) / 6;
printf("Tong = %d", sum); // Kết quả: 20
return 0;
}
Lưu ý: Code gốc có lỗi công thức (chia 2 thay vì 6) và kết quả in ra 60 là sai.