poj1003 Hangover 解题报告

来源:互联网 发布:区域电网排放因子数据 编辑:程序博客网 时间:2024/05/20 17:42

分析:水题,把结果预处理出来存在数组中,然后在根据输入找结果即可

注意结束条件最好不要用等于0判断  可以用<0.001来判断,防止精度问题

c++代码:

#include<cstdio>double f[100000];int main(){    double x;    int i,total;    f[0] = 0.0;    i = 0;    while (f[i] <= 5.20)    {        i++;        f[i] = f[i-1] + 1.0/(double)(i+1);    }    total = i;    while (scanf("%lf",&x) == 1)    {        if (x < 0.001) break;        for (i = 1; i <= total; i++)            if (f[i] >= x)            {                printf("%d card(s)\n",i);                break;            }    }    return 0;}