一开始想复杂了。。。
简单题。
#include<stdio.h>
using namespace std;
int dabiao(double b[])
{
double a1;
int i;
i=2;a1=0;b[1]=0.5;
while(a1<5.30)
{
b[i]=b[i-1]+1/(double)(i+1);
a1=b[i];i++;
}
return i;
}
int main()
{
double b[500];
int n,j,k;
double sum,a1;
k=dabiao(b);
while(~scanf("%lf",&a1)&&a1!=0)
{
if(a1<=0.5)printf("1 card(s)\n");
else
{
for(j=2;j<k;j++)
{
if(b[j]>=a1)break;
}
printf("%d card(s)\n",j);
}
}
return 0;
}