您的位置:首页 > 编程语言 > Go语言

POJ-1003 Hangover

2014-10-06 14:38 1046 查看
      说白了就是给一个数c,让你算1/2+1/3+1/4+1/5+……+1/n的结果能够刚好大于c的时候,n-1是多少,没啥好说的,直接放代码

    需要注意的是,在判断两个浮点数是否“相等时”,要使用 if(fabs(a - b) < eps)其中,fabs为取绝对值函数,a,b为两个浮点类型的数,eps为一个很小的浮点数,常取1e-8,这样可以防止因为浮点类型的精度损失而造成的错误 。

#include<stdio.h>
#include<math.h>
#define EPS 1e-8
int main()
{
double c;
//freopen("in.txt","r",stdin);
while(~scanf("%lf",&c)&&fabs(c)>EPS)
{
int i=2;
double tmp=0;
do
{
tmp+=1/(double)i;
++i;
}
while(tmp<c);
printf("%d card(s)\n",i-2);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  poj