Tính tổng S = Σi=0..n Kn-i (K-1)i.
Phân tích
Đây là cấp số nhân với:
- Số hạng đầu: a = Kn
- Công bội: r = (K-1)/K
- Số hạng: n+1
Áp dụng công thức tổng cấp số nhân:
S = a(1 - rn+1) / (1 - r) = Kn * (1 - ((K-1)/K)n+1) / (1/K) = Kn+1 - (K-1)n+1
Ví dụ
n=3, K=4: 4³ + 4²·3 + 4·3² + 3³ = 64+48+36+27 = 175
Công thức: 4⁴ - 3⁴ = 256 - 81 = 175 ✓
Code C++
#include <iostream>
#include <cmath>
using namespace std;
long long seriesSum(int k, int n) {
// S = k^(n+1) - (k-1)^(n+1)
return (long long)pow(k, n+1) - (long long)pow(k-1, n+1);
}
int main() {
cout << seriesSum(2, 4) << endl; // 31 (2^5 - 1^5 = 32-1)
cout << seriesSum(4, 3) << endl; // 175
return 0;
}
Kết quả
31 175
Lưu ý: Dùng pow double có thể sai số với số lớn. Nên dùng lũy thừa nhị phân (integer) cho chính xác.