zoukankan      html  css  js  c++  java
  • POJ1003Hangover

    题目比较水,处理好浮点数的基本问题即可(虽然我调试了几遍)

    Hangover
    Time Limit: 1000MS   Memory Limit: 10000K
    Total Submissions: 105760   Accepted: 51553

    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

    The input consists of one or more test cases, followed by a line containing the number 0.00 that signals the end of the input. Each test case is a single line containing a positive floating-point number c whose value is at least 0.01 and at most 5.20; c will contain exactly three digits.

    Output

    For each test case, output the minimum number of cards necessary to achieve an overhang of at least c card lengths. Use the exact output format shown in the examples.

    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 //oimonster
     2 #include<cstdio>
     3 #include<cstdlib>
     4 #include<iostream>
     5 using namespace std;
     6 int count(double x){
     7     double s,i;
     8     i=2.0;
     9     s=0.0;
    10     while(true){
    11         s=s+1/i;
    12         if(s>=x)break;
    13         i=i+1.0;
    14     }
    15     return int(i-1.0);
    16 } 
    17 int main(){
    18     int i,j,n;
    19     double x;
    20     scanf("%lf",&x);
    21     while(x!=0.00){
    22         printf("%d card(s)\n",count(x));
    23         scanf("%lf",&x);
    24     } 
    25     return 0;
    26 }
    View Code
  • 相关阅读:
    hihoCoder #1176 : 欧拉路·一 (简单)
    228 Summary Ranges 汇总区间
    227 Basic Calculator II 基本计算器II
    226 Invert Binary Tree 翻转二叉树
    225 Implement Stack using Queues 队列实现栈
    224 Basic Calculator 基本计算器
    223 Rectangle Area 矩形面积
    222 Count Complete Tree Nodes 完全二叉树的节点个数
    221 Maximal Square 最大正方形
    220 Contains Duplicate III 存在重复 III
  • 原文地址:https://www.cnblogs.com/oimonster/p/4291015.html
Copyright © 2011-2022 走看看