poj1003

题目大意:超越悬挂
你可以把卡片最远堆到距离桌子多远?如果你有一张卡片,你可以堆卡片长度的一半如果有两张卡片那么可以堆1/2+1/3=5/6,如果有n张卡片那么可以堆1/2+1/3+1/4+。。。。。1/n+1/(n+1),最上面的可以漏出来1/2,依次往下,最下面的可以漏出来1/(n+1),如下图所示

 

  下面给一个长度问最少多少张卡片才可以超过这个长度
easy 了,直接模拟吧
#include<stdio.h>
#define maxn 1000005
double a[maxn];
int main()
{
    int i;
    double L;
    for(i=1; i<maxn; i++)
        a[i]= a[i-1]+1.0/(i+1);
    while(scanf("%lf",&L)!= EOF && L)
    {
        for(i=1; i<maxn; i++)
            if(a[i]>= L)break;
        printf("%d card(s) ", i);
    }
    return 0;

} 

原文地址:https://www.cnblogs.com/liuxin13/p/4381745.html