描述

您可以将多张纸牌悬在桌子上多远?如果您有一张卡,则可以创建一个最大长度为卡长的一半。(我们假设这些卡片必须垂直于桌子。)使用两张卡片,您可以使最上面的卡片悬垂在底部的卡片长度的一半,而最下面的卡片悬垂在桌面的卡片长度的三分之一,总最大悬垂为1/2 + 1/3 = 5/6卡长度。通常,您可以使n张卡片的悬垂度为1/2 + 1/3 + 1/4 + ... + 1 /(+1)牌的长度,其中顶牌在第二张牌上悬垂1/2,第二张牌在第三张悬垂1/3,第三张在第四张悬垂1/4,依此类推,而底牌在桌子上悬垂1 /。 (+ 1)。如下图所示。

POJ题目 1003Hangover(叠放纸牌)

输入

输入由一个或多个测试用例组成,其后一行包含表示输入结束的数字0.00。每个测试用例都是一条包含正浮点数c的单行,其浮点数c至少为0.01,最大为5.20;c将包含三位数字。

输出

对于每个测试用例,输出实现至少c个卡长度的突出所需的最小卡数。使用示例中显示的确切输出格式。

样本输入

1.00
3.71
0.04
5.19
0.00

样本输出

3 card(s)
61 card(s)
1 card(s)
273 card(s)

 

代码

用while循环,直到超过需要的长度

 

#include <iostream>
using namespace std;
int main()
{
    float k,s=0;//定义输入和总和变量
    int n;//定义纸牌个数变量
    while(1){//循环输入
        cin >> k;//输入需要达到的长度
        s=0;//初始化
        n=2;
        if(k==0.00) break;//结束循环
        while(s<k){//在s没到k是一直加
            s+=1.0/n;//s加1/n
            n++;//n加1
        }
        cout<<n-2<<" card(s)"<<endl;//输出需要纸牌个数
    }
    return 0;
}

 

相关文章:

  • 2021-07-09
  • 2022-01-27
  • 2022-01-11
  • 2021-06-06
  • 2021-09-19
  • 2021-05-20
  • 2021-10-21
猜你喜欢
  • 2022-02-17
  • 2022-12-23
  • 2021-07-22
  • 2022-02-14
  • 2021-11-04
  • 2021-12-26
  • 2021-07-13
相关资源
相似解决方案