P1035 [NOIP2002 普及组] 级数求和
题目描述
已知:S= 1+1/2+1/3+…+1/n。显然对于任意一个整数 k,当 n 足够大的时候,S>k
现给出一个整数 k,要求计算出一个最小的 n,使得 S>k。
输入格式
一个正整数 k。
输出格式
一个正整数 n。
输入输出样例
| 输入 | 输出 |
|---|---|
1 |
2 |
建模分析:
很显然需要用到一个不确定多少次的循环,用while最合适了。
解答
#include<iostream>
using namespace std;
int k,c=1;
double s=0;
int main()
{
cin>>k;
while(true)
{
s+=1.0/c;
if(s>k)
break;
c++;
}
cout<<c<<endl;
return 0;
}
博主的个人网站:https://codespark.cn/

浙公网安备 33010602011771号