洛谷1035

  1. 题意:

    级数求和
    已知:S_n= 1+1/2+1/3+…+1/。显然对于任意一个整数 k,当 n 足够大的时候,S_n>k

    现给出一个整数 k,要求计算出一个最小的 n,使得 S_n>k

  2. 解题:
    暴力解题不难,但是注意精确度问题。刚开始sum定义为float类型测例3和5不能通过,后来将其定义为double类型,通过
  3. 代码
    /*
    级数求和
    已知:S_n= 1+1/2+1/3+…+1/。显然对于任意一个整数 k,当 n 足够大的时候,S_n>k
    
    现给出一个整数 k,要求计算出一个最小的 n,使得 S_n>k
    */
    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    int main()
    {
        int k, n;
        cin >> k;
        double sum = 0;
        for (n = 1; ; n++)
        {
            sum = sum + (1.0) / n;
            if (sum > k)
                break;
            
        }
        cout << n;
        return 0;
    }

     

posted @ 2020-12-17 11:39  Quella'  阅读(159)  评论(0)    收藏  举报
Live2D