Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tổng chuỗi 1 + x/1 + x²/2 + x³/3 + ... + xⁿ/n trong C++

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散.