折纸的厚度

来源:互联网 发布:全景通源码 编辑:程序博客网 时间:2024/05/17 06:56

问题描述

假定有一张充分大的纸,并且可以进行许多次对折。若单张纸的厚度为 x ,计算经过多少次对折后,折纸的厚度超过珠穆朗玛峰的高度 8844.43

输入

输入数据仅有一行。该行有若干个数据表示单纸张的厚度(以毫米为单位),对应每一种情形。

输出

对于每一种情形,先输出“ Case #: # 为序号,从 1 起),然后输出单张纸张的厚度、需要对折的次数、总厚度(以米为单位),换行。

输入样例

0.1 0.3 0.5

输出样例

Case 1: 0.1, 27, 13421.8

Case 2: 0.3, 25, 10066.3

Case 3: 0.5, 25, 16777.2

 

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double thick,a,height=0.0;
    int n,k=0;
    while(cin>>thick)
    {    cout<<"Case "<<++k<<": "<<thick<<", ";
        for(n=-1;height<=8844430.0;)
        {
            ++n;
            a=pow(2.0,double(n));
            height=a*thick;
           
        }
        cout<<n<<", "<<height*0.001<<endl;
        height=0;
    }
    return 0;
}

原创粉丝点击