1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取!
一、基本介绍
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。键盘输入 K,屏幕输出 n。
二、完整程序
/*----------------------------------------------------------------------------------------
Program Explain:级数求和。已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,
当n足够大的时候,Sn大于K。现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
Input Description:键盘输入 K
Output Description:屏幕输出 n
Create Date:2018.2.2 by lzn
----------------------------------------------------------------------------------------*/
#include <stdio.h>
int main(void)
{
int n,K;
double Sn,An;
printf("Please input K(1<=K<=15):");
scanf("%d",&K);
if( (K>=1)&&(K<=15) )
{
for(n=1;;n++)
{
An = 1.0/n;
Sn += An;
if(Sn>K)
{
break;
}
}
printf("n=%d,Sn=%f\n",n,Sn);
}
else
{
printf("Input error!Please input again!\n");
}
return 0;
}
程序执行结果如下图所示: