INVSUM - Tính tổng nghịch đảo các số lẻ

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}{3} + \frac{1}{5} + ... + \frac{1}{{2n - 1}}$$

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
1.78730
3.28434

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


Bình luận

Please read the guidelines before commenting.



  • 1
    mducc  đã bình luận lúc 2, Tháng 6, 2026, 10:01

    $$Hint$$ $$f[1] = 1.0$$ $$FOR(i: 2 --> 1e6)$$ $$f[i]=f[i-1]+1.0/(2*i-1)$$

    Lưu ý: hàm f được lưu dưới kiểu dữ liệu double hoặc long double

    đối với C++: thêm câu lệnh cout << fixed << setprecision(5);trong main để sau khi in ra có 5 chữ số thập phân đằng sau.

    với mỗi truy vấn in ra $$f[n]$$


  • -1
    TOP1FLOVN  đã bình luận lúc 2, Tháng 12, 2025, 11:20

    include <bits/stdc++.h>

    using namespace std; long double T; int main() { cin >> T; while (T--) { long long n; cin >> n; long double Sn = 0.0; for (long long i = 1 ; i <= n ; i++) { Sn += 1.0 / (2 * i - 1); } cout << fixed << setprecision(5) << Sn << '\n'; } return 0; }


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

    help


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

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


  • -6
    hgb_donut  đã bình luận lúc 8, Tháng 10, 2025, 13:47

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


  • -7
    hgb_donut  đã bình luận lúc 8, Tháng 10, 2025, 13:46

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


  • -1
    honghoa  đã bình luận lúc 25, Tháng 4, 2024, 16:23

    ac cho em hỏi có cách nào để fix lỗi TLE trong PYTHON, em cảm ơn ạ, có code nào làm giảm tg run dưới 1s ko ạ


    • 4
      dainghiajustiin  đã bình luận lúc 26, Tháng 4, 2024, 15:56

      với bài này thì em nên lưu các giá trị Sn vào 1 mảng rồi khi cần lấy Sn nào thì ta chỉ cần in giá trị của vị trí thứ n trong mảng ra là dc nhé (lưu ý là vị trí n thì vị trí 0 bỏ trống nhé :vv)


      • 1
        hlin  đã bình luận lúc 27, Tháng 4, 2024, 14:48

        c làm cái ví dụ gọi mảng giúp e hiểu với ạ


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

    Bạn sinh ra tất cả các trường hợp ở vòng lặp đầu tiên lưu nó vào một arr. Sau đó chỉ cần gọi lại thôi


  • 1
    manh_str123  đã bình luận lúc 27, Tháng 8, 2023, 2:49

    Làm sao để không bị TLE test cuối ạ. Có nhiều bài tương tự e cũng bị TLE test cuối như thế này.


    • 1
      nguien_24  đã bình luận lúc 3, Tháng 1, 2024, 12:44 chỉnh sửa

      dùng 1 mảng lưu hết các giá trị sinh ra từ trước, hoặc dùng qui hoạch động