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);
    }

结果:
Java用while循环for循环解决有一张足够大的纸、折成与珠穆朗玛峰的高度。_第1张图片
我们看到的结果已经大于珠穆朗玛峰了,所以要看折叠26次的高度,这里的结果是有效位是8位,
E呢是10的7次方,打开计算器输入纸张折叠的厚度除于2就是26次的高度。
Java用while循环for循环解决有一张足够大的纸、折成与珠穆朗玛峰的高度。_第2张图片
我们再说说为什么不用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);
}

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

你可能感兴趣的:(java,java,开发语言)