Hangover POJ - 1003
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 <tt>+</tt> 1/3 <tt>=</tt> 5/6 card lengths. In general you can make n cards overhang by 1/2 <tt>+</tt> 1/3 <tt>+</tt> 1/4 <tt>+</tt> ... <tt>+</tt> 1/(n <tt>+</tt>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 <tt>+</tt> 1). This is illustrated in the figure below.
<center> </center>
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)
解题思路:水题。
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 5 using namespace std; 6 7 int main() 8 { 9 double a; 10 int countt=0; 11 double now=0; 12 double sum=0; 13 while(scanf("%lf",&a)&&(fabs(a-0)>0.0001)){ 14 sum=0; 15 now=0; 16 countt=1; 17 while(sum<a){ 18 countt++; 19 sum+=1.0/countt; 20 } 21 printf("%d card(s)\n",countt-1); 22 } 23 return 0; 24 }