说明
已知: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
输出数据 1
2
解题思路:由于求sn的大于k时的最小n值,数据范围很小可以水过,类型定义为double,一个while循环就可以过了。这个sn好像类似于高数中的极限问题。代码如下:
#include<iostream>
using namespace std;
double sn=0,k,n=1;
int main()
{
cin>>k;
while(sn<=k)
{
sn+=1/n;
n++;
}
cout<<n-1;
return 0;
}