题目大意:找出一个N 使得 1/2+1/3+1/4+....1/N+1 的值大于某个输入的浮点数值,输出N。
#include<stdio.h>
int main(){double c,sum;
int i;
scanf("%lf",&c);
while(c!=0){
i=2;
sum=(double)1/i;
while(sum<c){
i++;
sum+=(double)1/i;
}
printf("%d card(s)\n",--i);
scanf("%lf",&c);
}
return 0;
}
在这里主要需要注意的是:在C语言中整型除以整型被截断了小数点,仍然是整型,比如3/2=1
尽管其中sum=1/i,得到结果后会强制转换成与sum相同数据类型,但是在算的过程中已经截断,所以需要进行强制类型转换。