说明
已知:Sn= 1+1/2+1/3+...+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n,使得Sn>K。
输入格式
每个测试文件只包含一组测试数据,每组一个整数k(1<=k<=15)。
输出格式
对于每组输入数据,输出要求计算出的最小的n,使得Sn>K。
样例
输入数据 1
1
Copy
输出数据 1
2
思路
直接使用暴力枚举,设置一个死循环,从1开始一直累加1/2,1/3......1/n,直到累加和大于k值
代码
#include<bits/stdc++.h>
using namespace std;
double k,s,ans;
int main(){
cin>>k;
double i=1;
int t=1;
while(1){
ans+=i;
t++;
i=1.0/t;
if(ans>k){
cout<<t-1;
break;
}
}
return 0;
}