题目看着挺复杂,还配了个看上去就很高大上的图,但是看完题就发现,完完全全是一道水题= =好吧,题意简单说就是有一排数,是1/2,1/2+1/3,1/2+1/3+1/4.......然后给出一个数,问这个数是在什么位置......跑个for循环就解决了= =
下面AC代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int i;
double n,ans;
while(scanf("%lf",&n)!=EOF)
{
if(n==0)
break;
ans=0;
for(i=2;;i++)
{
ans=ans+1.0/(double)i;
if(n<ans)
{
cout<<i-1<<" card(s)"<<endl;
break;
}
//cout<<i-1<<"cards' length is "<<ans<<endl;
}
}
return 0;
}