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

Tổng chuỗi a^1/1! + a^2/2! + ... + a^n/n! trong C++

Tính tổng S = Σ_{i=1}^n a^i / i!.

Ví dụ

a = 3, n = 4: 3/1 + 9/2 + 27/6 + 81/24 = 3 + 4.5 + 4.5 + 3.375 = 15.375.

Tối ưu tính toán

Thay vì tính riêng a^i và i!, dùng quan hệ truy hồi:

term_1 = a/1
term_i = term_{i-1} * a / i

Cài đặt C++

#include <iostream>
using namespace std;

float calcSeriesSum(int a, int n) {
    float sum = 0, term = 1;
    for (float i = 1; i <= n; i++) {
        term *= a / i;
        sum += term;
    }
    return sum;
}

int main() {
    int a = 3, n = 4;
    cout << "Tong chuoi la " << calcSeriesSum(a, n);
    return 0;
}

Output

Tong chuoi la 15.375

Lưu ý

  • Dùng double cho độ chính xác cao hơn.
  • Chuỗi này hội tụ đến e^a - 1 khi n → ∞.
  • Tránh tràn số: nhân chia dần thay vì tính lũy thừa và giai thừa riêng.