POJ-1003 Hangover

来源:互联网 发布:rup软件过程模型 编辑:程序博客网 时间:2024/06/06 01:09

      说白了就是给一个数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-8int 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);    }}


0 0