#include <stdio.h>
#include <iostream>
#include <string.h>
#include <math.h>
#define m 300
using namespace std;
double p[m+10];
void pr(){
double f=0;
for(int i=2;i<=300;i++)
{
f+=(double)1/i;
p[i]=f;
}
}
int main(){
pr();
int t,i;
double n;
//for( i=2;i<=300;i++)
// printf("%.2lf\n",p[i]);
while(scanf("%lf",&n)&&n)
{
t=1;
i=2;
while(p[i]<n)
{
t++;
i++;
}
cout<<t<<" card(s)"<<endl;
}
return 0;
}
这个还是一个打表的题。
题目设定了输入最多5.20,样例中给出5.19是273,所以基本上300个就足以支持了。
这个就是在做的时候注意t是从1开始的,因为我只是判定到p[i]<n,p[i]>n的第一个数字没有实现t++,所以就直接定义了t=1;
至此1A