ZOJ1045-HangOver

#include 

int main()
{
    double c;
    int n;
    double sum;
    
    while (scanf("%lf", &c) == 1 && c) {
        sum = 0;
        n = 2;
        while (sum < c) {
            sum += 1.0 / n;
            n++;
        }
        printf("%d card(s)\n", n-2);
    }
    
    return 0;
}
题目要求一张桌上一叠卡片能够伸出的最长距离的卡片数。每张卡片长度为1,n张卡片伸出的最长距离为1/2+1/3+.....1/n。

你可能感兴趣的:(ZOJ)