案例:珠穆朗玛峰
需求:
世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米,请问,我折叠多少次,可以折叠成珠穆朗玛峰的高度?
分析:
(1)因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环
(2)循环的执行过程中每次纸张折叠,纸张的厚度需要加倍,因此需要事先定义纸张厚度,在循环中使厚度加倍
(3)折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度
(4)设置一个计数器,在循环中执行累加,对应折叠了多少次
完整代码:
publicclassforDemo{ publicstaticvoidmain(String[] args) { intcount=0; doublepaper=0.1; intzf=8844430; while(paper<=zf){ paper*=2; count++; } System.out.println("需要折叠"+count+"次"); } }
运行结果:
需要折叠27次