题意说的是,给出一个数,让你求出满足 1/2+1/3+...+1/(n+1)的值大于这个数的最小的n.......
循环累加就可以了............
#include<stdio.h>
int cnt(double x)
{
double s=0;
int i=2;
while(s<x)
{
s+=1.0/(i*1.0);
++i;
}
return i-2;
}
int main()
{
double x;
while(scanf("%lf",&x) != EOF){
if(x == 0)
break;
printf("%d card(s)\n",cnt(x));
}
return 0;
}
其实代码可以更简洁一点,如下所示
#include<stdio.h>
int cnt(double x)
{
double s=0;
int i=2;
while(s<x)
{
s+=1.0/(i*1.0);
i++;
}
return i-2;
}
int main()
{
double x;
while(scanf("%lf",&x),x)
printf("%d card(s)\n",cnt(x));
return 0;
}