poj1003

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

poj1003

poj1003poj1003poj1003

  下面给一个长度问最少多少张卡片才可以超过这个长度
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)\n", i);
    }
    return 0;

}

上一篇:iOS拓展---常见crash以及解决方案


下一篇:reactjs入门到实战(五)---- props详解