题目描述:http://poj.org/problem?id=1003
这题目还是很简单的吧,先预处理所有card的数据,到时候只要搜索一下就可以了,贴一下AC代码:
#include <iostream>
using namespace std;
float num[300];
void init()
{
num[0]=0;
for(int i=1;i<=299;i++)
{
num[i]=num[i-1]+1.0/(i+1);
//cout<<num[i]<<endl;
}
}
int find(float x)
{
for(int i=1;i<=299;i++)
{
if(x>=num[i] && x<num[i+1])
return i;
}
return 0;
}
int main()
{
float c;
init();
while(cin>>c && c!=0)
{
cout<<find(c)+1<<" card(s)"<<endl;
}
return 0;
}