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

Tổng chuỗi 0.7, 0.77, 0.777, ... tới n số hạng trong C++

Cho n. Tính S = 0.7 + 0.77 + 0.777 + ... (n số hạng, số hạng i có i chữ số 7).

Ví dụ

n = 4: 0.7 + 0.77 + 0.777 + 0.7777 = 3.0247

Công thức toán học

Số hạng thứ i: 7/9 * (1 - 10^{-i}).

Tổng: S = 7/9 * Σ(1 - 10^{-i}) = 7/9 * [n - (1/10)(1 - 10^{-n})/(1 - 1/10)]

= 7/9 * [n - (1 - 10^{-n})/9]
= 7/81 * (9n - 1 + 10^{-n})

Chương trình C++

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

double calcSeriesSum(int n) {
    return (7.0 / 81.0) * (9 * n - 1 + pow(10, -n));
}

int main() {
    int n = 5;
    cout << fixed << setprecision(5)
         << "Tong chuoi = " << calcSeriesSum(n); // 3.80205
    return 0;
}

Kết quả

Tong chuoi = 3.80205

Lưu ý

Code gốc dùng hằng số 0.08641 gần đúng 7/81 ≈ 0.08641975. Nên dùng phép chia chính xác để tránh sai số.