POJ 1003 -- Hangover
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 126127 | Accepted: 61563 |
Description
How far can you make a stack of cards overhang a table? If you have one card, you can create a maximum overhang of half a card length. (We're assuming that the cards must be perpendicular to the table.) With two cards you can make the top card overhang the bottom one by half a card length, and the bottom one overhang the table by a third of a card length, for a total maximum overhang of 1/2 + 1/3 = 5/6 card lengths. In general you can make n cards overhang by 1/2 + 1/3 + 1/4 + ... + 1/(n + 1) card lengths, where the top card overhangs the second by 1/2, the second overhangs tha third by 1/3, the third overhangs the fourth by 1/4, etc., and the bottom card overhangs the table by 1/(n + 1). This is illustrated in the figure below.

Input
Output
Sample Input
1.00
3.71
0.04
5.19
0.00
Sample Output
3 card(s)
61 card(s)
1 card(s)
273 card(s)
Source
1 #include <iostream> 2 #include <cmath> 3 #include <cstring> 4 #include <cstdio> 5 #include <cstdlib> 6 #include <algorithm> 7 using namespace std; 8 int main() 9 { 10 double t; 11 while(scanf("%lf",&t)) //*** 输入双精度浮点数:%lf *** 12 { 13 if(t==0.00) break; 14 double ans=0; 15 for(int i=2;;i++) //中间不写的话在循环中就一定要有退出条件 16 { 17 ans+=1.0/(double)i; 18 if(ans>=t) 19 { 20 printf("%d card(s)\n",i-1); 21 break; 22 } 23 } 24 } 25 //system("pause"); 26 return 0; 27 }

浙公网安备 33010602011771号