洛谷题库入门:P1035级数求和

179 阅读1分钟

题目链接:P1035 [NOIP2002 普及组] 级数求和

题目概况

[NOIP2002 普及组] 级数求和

题目描述

已知:Sn=1+12+13++1nS_n= 1+\frac{1}{2}+\frac{1}{3}+…+\frac{1}{n}。显然对于任意一个整数 kk,当 nn 足够大的时候,Sn>kS_n>k。 现给出一个整数 kk,要求计算出一个最小的 nn,使得 Sn>kS_n>k

输入格式

一个正整数 kk

输出格式

一个正整数 nn

提示

【数据范围】 对于 100%100\% 的数据,1k151\le k \le 15

【题目来源】 NOIP 2002 普及组第一题

分析

由题可知,题目是让我们求i=1n1i\sum^n_{i=1}\frac{1}{i}大于等于kk时,n的最小值。

很明显,这道题可以用while循环来做

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    double sum=0;
    int k,i=0;
    scanf("%d",&k);
    while(sum<=k)
    {
        ++i;
        sum=sum+1.0/i;
    }
    cout<<i;
    return 0;
}