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
doublethayfloatđể độ 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
nrất lớn, có thể xấp xỉ bằng công thức trên.