SUM5 - Tính tổng nghịch đảo

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Với số nguyên dương ~n~, tính tổng:

$${S_n} = 1 + \frac{1}{2} + \frac{1}{3} + ... + \frac{1}{n}$$

Input

  • Dòng đầu ghi số nguyên dương ~T~ là số bộ test;
  • ~T~ dòng tiếp theo, mỗi dòng chứa một số nguyên dương ~n~.

Giới hạn:

  • ~1 ≤ T ≤ 10^5, 1 ≤ n ≤ 10^6~.

Output

  • Với mỗi bộ test, ghi ra trên một dòng số ~S_n~ làm tròn đến ~5~ chữ số thập phân.

Sample

Input #1
3
1
5
100
Output #1
1.00000
2.28333
5.18738

Problem source: Chuyên Sơn La Online Judge


Bình luận

Please read the guidelines before commenting.



  • 0
    mducc  đã bình luận lúc 25, Tháng 4, 2026, 13:01

    ý tưởng:

    dùng tổng tiền tố để tính trước  
    với mỗi truy vấn chỉ mất O(1) thời gian
    

    code tham khảo (C++)

        #include <bits/stdc++.h>
    
        using namespace std;
    
        const int Lim = 1e6;
        double pre[Lim + 2];
    
        int main() {
            ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
    
            int t;
            cin >> t;
    
            for (int i = 1; i <= Lim; ++i) pre[i] = pre[i-1] + 1.0*1/i;
    
            cout << fixed << setprecision(5);
    
    
            while (t--) {
                int n;
                cin >> n;
                cout << pre[n] << '\n';
            }
        }
    

  • -2
    ggxoaxoavippro  đã bình luận lúc 17, Tháng 4, 2026, 14:13

    niigggggaaaa


  • 0
    tp22042013  đã bình luận lúc 11, Tháng 4, 2026, 13:34

    include <bits/stdc++.h>

    using namespace std; long double a[1000000]; int main() { long double sum=0.0; for(int i=1;i<=1000000;i++) { sum+=1.0/i; a[i]=sum; } int t; cin>>t; while(t--) { int n; cin>>n; cout<<fixed<<setprecision(5)<<a[n]<<endl; } return 0; }


  • -3
    TwoTime  đã bình luận lúc 1, Tháng 4, 2026, 11:46

    (https://)](https://)](https://)](https://)](https://)](https://)


  • -2
    congtyluuthaibao1978  đã bình luận lúc 24, Tháng 11, 2025, 11:15

    include <bits/stdc++.h>

    using namespace std; long double a[1000000]; int main() { long double sum=0.0; for(int i=1;i<=1000000;i++) { sum+=1.0/i; a[i]=sum; } int t; cin>>t; while(t--) { int n; cin>>n; cout<<fixed<<setprecision(5)<<a[n]<<endl; } } code như này mới đúng nè


  • -2
    ledinhvietanh2010  đã bình luận lúc 15, Tháng 10, 2025, 13:12

    include <bits/stdc++.h>

    using namespace std; long double a[1000000]; int main() { long double sum=0.0; for(int i=1;i<=1000000;i++) { sum+=1.0/i; a[i]=sum; } int t; cin>>t; while(t--) { int n; cin>>n; cout<<fixed<<setprecision(5)<<a[n]<<endl; } return 0; }


  • -5
    nguyenbeodeptrai  đã bình luận lúc 8, Tháng 10, 2025, 10:57

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • 1
      quocchill2011  đã bình luận lúc 22, Tháng 3, 2026, 14:51 chỉnh sửa

      Làm bài code phải tự lực cánh sinh, sao lại thấy bài để chép thì mừng như "chưa có chuyện gì " là sao ? Bài code chia sẻ trên comment và phần "Đọc lời giải" chỉ để tham khảo và chỉ là điều kiện hỗ trợ bên ngoài để làm code thôi nhé, không phải lúc nào thấy bài người ta là chép đấy nha, như vậy không tốt chút nào đâu bạn ạ! Mỗi người cũng vậy, khi làm bài ai cũng có một ý tưởng riêng, không ai giống ai, không phải lúc nào cũng "quay cóp" hay chép bài bạn nha. "Không có việc gì khó

      Chỉ sợ lòng không bền

      Đào núi và lấp biển

      Quyết chí ắt làm nên." Nếu ý kiến tôi trình bày hữu ích thì mỗi người nhớ upvote nha. Mọi người cùng học thuộc câu này nào !!!


  • 0
    MisolHo  đã bình luận lúc 7, Tháng 4, 2025, 5:25

    dung prefix sum thì code chỉ mất O(1) nên rất nhanh nhé


  • -1
    tungngo  đã bình luận lúc 30, Tháng 11, 2024, 2:32

    Dùng prefixsum nhé mn


  • -2
    lch101  đã bình luận lúc 27, Tháng 8, 2023, 17:17

    nice bro


  • -1
    tranhoangviet2000553  đã bình luận lúc 25, Tháng 8, 2023, 8:59

    TLE cuoi la gi the a


    • -2
      ngkhacbaolam2809  đã bình luận lúc 22, Tháng 10, 2023, 8:43

      kiểu dữ liệu long long


  • -1
    DucThanh_369  đã bình luận lúc 24, Tháng 8, 2023, 2:17

    test cuoi TLE kho qua ai giup mik voi


    • -1
      Docladongnai  đã bình luận lúc 17, Tháng 7, 2024, 7:03

      Dung kieu long long nhe


    • 0
      QiTunTun  đã bình luận lúc 27, Tháng 8, 2023, 15:34

      n <= 10^6 với t <= 10^5 thì babnj dùng cách sinh ra tất cả các đáp án ròi gọi lại là dc nhé b


      • -1
        Kphong  đã bình luận lúc 12, Tháng 10, 2023, 15:46

        ban noi lai di


      • -3
        Chaoemnha005  đã bình luận lúc 1, Tháng 9, 2023, 9:05 chỉnh sửa

        mình chưa hiểu ý bạn lắm phiền bạn nói kĩ hơn giúp mình