Cho 3 tham số: a (số hạng đầu), r (công tỷ), n (số số hạng). Tính tổng cấp số nhân: a + ar + ar² + ar³ + ... + arⁿ⁻¹.
Ví dụ
Đầu vào - a = 1, r = 0.5, n = 5
Đầu ra - 1.937500
Đầu vào - a = 2, r = 2.0, n = 8
Đầu ra - 510.000000
Thuật toán
- Khởi tạo sum = 0
- Vòng lặp i từ 0 đến n-1:
- sum += a
- a = a * r
- Trả về sum
Chương trình mẫu
#include <stdio.h>
float sumGeometric(float a, float r, int n) {
float sum = 0;
for (int i = 0; i < n; i++) {
sum += a;
a *= r;
}
return sum;
}
int main() {
int a = 1;
float r = 0.5;
int n = 5;
printf("%f", sumGeometric(a, r, n));
return 0;
}
Kết quả
1.937500
Lưu ý: Có thể dùng công thức toán học S = a(1-rⁿ)/(1-r) khi r ≠ 1 để tính O(1).