Java用while循环for循环解决有一张足够大的纸、折成与珠穆朗玛峰的高度。

一.解决思路, 定义变量存储珠穆朗玛峰的高度(peakHeight)、纸张的高度(paperThickness)。
使用while循环,循环条件是(纸张厚度<山峰高度),内部控制纸张折叠,每折叠一次,纸张厚度为原来两倍,循环外定义计数变量,每折叠依次让该变量+1。
(1)珠穆朗玛峰的高度=8848860
(2)纸张=0.1
二、执行代码while循环

  public static void main(String[] args) {
        double peakHeight=8848860;//山峰
        double paperThickness=0.1;//纸张
        int  count =0;
         //如果纸张的厚度小于山峰继折叠,直到高于山峰厚度退出
     while (paperThickness< peakHeight){
         //纸张每折叠厚度是他的两倍
      paperThickness=paperThickness*2;
      count++;//折叠的次数

    }
        System.out.println("纸张折叠次数"+count);
        System.out.println("纸张的厚度"+paperThickness);
    }

结果:
在这里插入图片描述
我们看到的结果已经大于珠穆朗玛峰了,所以要看折叠26次的高度,这里的结果是有效位是8位,
E呢是10的7次方,打开计算器输入纸张折叠的厚度除于2就是26次的高度。
在这里插入图片描述
我们再说说为什么不用for循环
(1)使用规范是:知道循环几次:使用for;
(2)不知道循环几次建议使用:while,不知道循环多少次的建议使用while,
显得更专业点。
我们也用for循环执行一次

public static void main(String[] args) {
    double peakHeight=8848860;//山峰
    double paperThickness=0.1;//纸张
    int  count =0;
     //如果纸张的厚度小于山峰继折叠,直到高于山峰厚度退出
 for (;paperThickness< peakHeight;){
     //纸张每折叠厚度是他的两倍
  paperThickness=paperThickness*2;
  count++;//折叠的次数

}
    System.out.println("纸张折叠次数"+count);
    System.out.println("纸张的厚度"+paperThickness);
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值