zoukankan      html  css  js  c++  java
  • LightOJ1234(Harmonic Number)

    Harmonic Number

    In mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers:

    In this problem, you are given n, you have to find Hn.


    Input

    Input starts with an integer T (≤ 10000), denoting the number of test cases.

    Each case starts with a line containing an integer n (1 ≤ n ≤ 108).

    Output

    For each case, print the case number and the nth harmonic number. Errors less than 10-8 will be ignored.

    Sample Input

    12

    1

    2

    3

    4

    5

    6

    7

    8

    9

    90000000

    99999999

    100000000

    Sample Output

    Case 1: 1

    Case 2: 1.5

    Case 3: 1.8333333333

    Case 4: 2.0833333333

    Case 5: 2.2833333333

    Case 6: 2.450

    Case 7: 2.5928571429

    Case 8: 2.7178571429

    Case 9: 2.8289682540

    Case 10: 18.8925358988

    Case 11: 18.9978964039

    Case 12: 18.9978964139

    分析:调和级数至今没有一个完全正确的公式,但欧拉给出过一个近似公式:(n很大时)

          f(n)ln(n)+C+1/2*n    

          欧拉常数值:C≈0.57721566490153286060651209

    #include<cstdio>
    #include<cmath>
    double C=0.57721566490153286060651209;
    double a[120000];
    int main()
    {
        int T,n,cas=1;
        a[1]=1;
        for(int i=2;i<120000;i++)
        a[i]=a[i-1]+1.0/i;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d",&n);
            printf("Case %d: ",cas++);
            if(n<120000) printf("%.10lf
    ",a[n]);
            else
            {
                printf("%.10lf
    ",log(n)+C+1.0/(2*n));
            }
        }
        
        return 0;
    }
    View Code
  • 相关阅读:
    mysql学习总结(四)
    mysql学习总结(三)
    mysql学习总结(二)
    mysql学习总结
    学习总结(三十)
    断点续传
    错误总结
    学习总结(三十六)
    学习总结(三十五)
    Linux命令
  • 原文地址:https://www.cnblogs.com/ACRykl/p/8585982.html
Copyright © 2011-2022 走看看