Hướng dẫn giải của [LOOP_HNCODE_12] Tổng điều hòa


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Hướng dẫn giải

Cho số nguyên dương n ~1 \le n \le 10^5~, hãy tính tổng 1/1 + 1/2 + 1/3 + ... + 1/n và in kết quả làm tròn đến chữ số thập phân thứ 3.

Cách làm

Khởi tạo tong = 0 kiểu double. Dùng vòng for chạy i từ 1 đến n và cộng dồn 1.0 / i vào tong.

Bẫy cần nhớ: phải viết 1.0 / i (có dấu chấm) để phép chia là chia thực. Nếu viết 1 / i thì C++ sẽ chia nguyên và kết quả sai. Để in đúng 3 chữ số thập phân ta dùng fixed và setprecision(3).

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    // Cộng dồn 1/i với i từ 1 đến n
    double tong = 0;
    for (int i = 1; i <= n; i++) {
        tong += 1.0 / i;   // nhớ viết 1.0 để không bị chia nguyên
    }
    // In với 3 chữ số thập phân
    cout << fixed << setprecision(3) << tong << "\n";
    return 0;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.