题目描述
已知:Sn=1+1/2+1/3+…+1/n。显然对于任意一个整数 k,当 n 足够大的时候,Sn>k。
现给出一个整数 k,要求计算出一个最小的 n,使得Sn>k。
输入
一个正整数 k。
输出
一个正整数 n。
样例输入
1
样例输出
2
提示
对于 100% 的数据,1≤k≤15。
程序
#include<bits/stdc++.h>
using namespace std;
int main(){
double k,sn=0,n=1;//注意,类型为double型
cin>>k;
while(true)//while死循环
{
sn+=(1/n);//累加
if(sn>k)//如果此时的累加和大于k
{
cout<<int(n);//强制转换类型符int()
return 0;//结束
}
n++;
}
return 0;
}