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

Tổng chuỗi điều hòa 1 + 1/2 + 1/3 + ... + 1/n trong C++

Tính tổng H_n = Σ_{i=1}^n 1/i — dãy điều hòa (Harmonic Series).

Ví dụ

n = 5: 1 + 1/2 + 1/3 + 1/4 + 1/5 ≈ 2.28333.

Thuật toán

Không có công thức đóng dạng đơn giản. Dùng vòng lặp cộng dồn.

float calcSeriesSum(int n) {
    float sum = 0.0f;
    for (float i = 1; i <= n; i++)
        sum += 1.0f / i;
    return sum;
}

Cài đặt C++

#include <iostream>
using namespace std;

float calcSeriesSum(int n) {
    float sum = 0.0f;
    for (float i = 1; i <= n; i++)
        sum += 1.0f / i;
    return sum;
}

int main() {
    int n = 7;
    cout << "Tong chuoi den " << n << " la " << calcSeriesSum(n);
    return 0;
}

Output

Tong chuoi den 7 la 2.59286

Lưu ý

  • Dùng double thay float để độ chính xác cao hơn.
  • Dãy điều hòa phát散: H_n ≈ ln(n) + γ (γ ≈ 0.577 là hằng số Euler-Mascheroni).
  • Đối với n rất lớn, có thể xấp xỉ bằng công thức trên.