级数求和
题目说明
已知: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= 1+1/2+1/3+…+1/n;所以利用循环来计算,先计算sn,再判断sum是否>k,是则跳出循环
代码如下:
#include<iostream>
using namespace std;
int main()
{
int n,k;
double sum=0;
cin>>k;
for(int i=1;;i++)
{
sum+=1.0/i;
if(sum>k)
{
cout<<i;
return 0;
}
}
return 0;
}