Description
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
Input
键盘输入 k
Output
屏幕输出 n
Sample Input
1
Sample Output
2
题意概括:求级数的和大于某个数,此时级数是多少级
错误原因:一次过,无错。
经验总结:整数除以整数还是整数,所以要得到小数,就要用小数参与运算
我的AC代码:
#include<stdio.h>
int main(void)
{
int k, i;
double sn;
scanf("%d", &k);
for(i = 1;;i ++)
{
sn += 1.0/i;
if(sn > k)
{
break;
}
}
printf("%d\n", i);
return 0;
}
{
int k, i;
double sn;
scanf("%d", &k);
for(i = 1;;i ++)
{
sn += 1.0/i;
if(sn > k)
{
break;
}
}
printf("%d\n", i);
return 0;
}