【题目描述】
已知:Sn=1+1/2+1/3+…+1/n。显然对于任意一个整数k,当n足够大的时候,Sn大于k。现给出一个整数k(1≤k≤15),要求计算出一个最小的n,使得Sn>k。
【输入】
一个整数k
【输出】
一个整数n
【输入样例】
1
【输出样例】
2
#include<iostream>
using namespace std;
int main()
{
int k,n=1;
double sum=1;
cin>>k;
while(sum<=k)
{
n++;//累加n的值
sum+=1.0/n;//计算n项和
}
cout<<n<<endl;
return 0;
}
信息学奥赛一本通T1087:while与do-while语句 级数求和 归属于 while与do-while语句,更多同类题解源程序见:while与do-while语句 和 级数求和
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!