Cho x và n. Tính S = 1 + x/1 + x²/2 + x³/3 + ... + xⁿ/n.
Ví dụ
x = 2, n = 4: S = 1 + 2 + 4/2 + 8/3 + 16/4 = 1 + 2 + 2 + 2.666... + 4 = 11.666...
Thuật toán
Duyệt i = 1..n, tính x^i tích lũy (nhân x mỗi bước), cộng term / i vào tổng. Độ phức tạp O(n).
Chương trình C++
#include <iostream>
#include <iomanip>
using namespace std;
double calcSeriesSum(double x, int n) {
double sum = 1.0; // Số hạng đầu tiên: 1
double term = 1.0; // x^i
for (int i = 1; i <= n; i++) {
term *= x; // x^i
sum += term / i; // x^i / i
}
return sum;
}
int main() {
double x = 3;
int n = 6;
cout << fixed << setprecision(5)
<< "Tong chuoi = " << calcSeriesSum(x, n); // 207.85
return 0;
}
Kết quả
Tong chuoi = 207.85000
Lưu ý
Chuỗi này liên quan đến hàm logarit: -ln(1-x) = x + x²/2 + x³/3 + ... cho |x| < 1. Với x ≥ 1 chuỗi phát散.