2013年10月21日 星期一

[ZJ] a625 - 5. Overhanging Cards

a625: 5. Overhanging Cards
關鍵字:

通過 : 65 人 /78 次 送出 : 64 人 /143 次 | 通過比率 : 102%
公開 測資點 1 (100%): 1.0s, 512 MB | 評分方式: Tolerant

最近更新 : 2013-03-05 17:32 
內容 :
你可以把一疊的卡片凸出桌子的邊緣多遠呢?如果你有一張卡,你最大可以凸出卡片長度的一半。有兩張卡時,你可以把上面那張的一半凸出下面的那張,而下面的那張則有三分之一凸出桌子的邊緣,總凸出長度則為 1/2 + 1/3 = 5/6 張卡片長度。總之,你可以把 n 張卡片凸出 1/2 + 1/3 + 1/4 + ... + 1/(n+1) 張卡片的長度,其中最上面那張凸出 1/2 於第二張的外面,第二張凸出 1/3 於第三張的外面,第三張凸出 1/4,以此類推,最底下那張則凸出 1/(n+1)。如右圖所示。
輸入說明 : 
每筆測資一行,含有一個正浮點數 c (代表所要凸出的總長度),其值最小為 0.01,最大為 5.20;這個數含有三位數字。
輸出說明 : 
輸出要達成所需的凸出長度最少需要幾張卡片。請參照範例輸出的格式。
範例輸入 : help
1.00
3.71
0.04
5.19
範例輸出 :
3 card(s)
61 card(s)
1 card(s)
273 card(s)
提示 : 
出處 : 
HP CodeWars 2007 
(管理:snail)
----------------------------------------------------------------------------------------------------------
#include<stdio.h>
int main(){
     double a,b;
     int n,i;
     while(scanf("%lf",&b)!=EOF){
        a=0;
        for(i=1;a<b;i++){
            a+=1.0/double(i+1);
        }
        printf("%d card(s)\n",i-1);
     }
}

沒有留言:

張貼留言