题目大意:n块板子可伸出桌外的长度为级数∑1/(n+1),给定伸出桌外长度,求需要多少块板子。
题目链接:http://poj.org/problem?id=1003
简单题。先对∑1/(n+1)打表,再查找不小于输入长度的最小下标输出即可(可使用二分查找)。
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
#define MAXN 100005
double a[MAXN];
int main()
{
int i=1;
double out=0;
for(;out<=5.20;i++)
{
out+=1.0/(i+1);
a[i]=out;
}
double k;
while(scanf("%lf",&k))
{
if(k==0.00)
break;
int j;
for(j=1;;j++)
{
if(a[j]>=k)
break;
}
printf("%d card(s)\n",j);
}
return 0;
}