黑马程序员技术交流社区

标题: 珠穆朗玛峰高度与折纸次数问题 [打印本页]

作者: zhubingg    时间: 2015-4-29 21:37
标题: 珠穆朗玛峰高度与折纸次数问题
今天上课学习了for循环和while循环的知识
在课堂WhileTest 中刘意老师讲到了珠穆朗玛峰用while循环记录count的方法/*
喜马拉雅山高8848米 一张纸张厚0.01米,假设可以无限折叠,需要折叠多少次可以达到喜马拉雅山的高度
折叠的次数未知可以用到变量定义,
需要重复折叠这个动作用到循环 这里用到循环 用while做
*/

class  WhileDemo1
{
        public static void main(String[] args)
        {
                int count = 0 ;
                int start = 1 ;// 把0.01变成1 提升100倍
                int result = 884800;//这个也需要提升100倍
                while (start <=result)
                {
                        start*=2;
                        count++;
                }
                System.out.println(count);//输出结果是20
        }
}

后来我想练习用for循环解决这个问题 用for语句写了,然后输出结果为19?见截图
求大家帮忙分析下?



作者: 蓝七    时间: 2015-4-29 21:46
判断语句应该为count++吧
作者: Oh.Ba    时间: 2015-4-29 21:52
总感觉怪怪的
作者: zhubingg    时间: 2015-4-29 21:54
Oh.Ba 发表于 2015-4-29 21:52
总感觉怪怪的

wo我也感觉怪怪的 和while 语句都一样
作者: 严晗哲    时间: 2015-4-29 21:59
E:\study_heima\gai.png
作者: 严晗哲    时间: 2015-4-29 22:00
start++不应该要

gai.png (83.15 KB, 下载次数: 108)

gai.png

作者: 日出pk朝阳    时间: 2015-4-29 22:06
你已经start*=2;了为啥还start++????
作者: exist    时间: 2015-4-29 22:15
吧start++改成start*=2就ok了
作者: 黄敬璇    时间: 2015-4-29 22:22

把for循环中的控制条件(start++)改成(start*=2),并且将for循环大括号内的(start*=2)删除。
作者: 黄冬    时间: 2015-4-29 22:26
楼上说的对!
作者: zhubingg    时间: 2015-5-1 00:01
蓝七 发表于 2015-4-29 21:46
判断语句应该为count++吧

判断语句是应该是 count*=2  我想明白了 谢谢回帖
作者: zhubingg    时间: 2015-5-1 00:02
严晗哲 发表于 2015-4-29 22:00
start++不应该要

嗯嗯  知道了 ,后来自己想明白了  count++的就话 就是3的二次方 后面的基数就都变了
作者: zhubingg    时间: 2015-5-1 00:03
日出pk朝阳 发表于 2015-4-29 22:06
你已经start*=2;了为啥还start++????

嗯嗯  刚学容易犯错啊  :L
作者: li514620797    时间: 2015-5-1 09:48
stsrt++有问题,叠层是乘以2不是自身加1
作者: zhubingg    时间: 2015-5-1 18:14
li514620797 发表于 2015-5-1 09:48
stsrt++有问题,叠层是乘以2不是自身加1

嗯嗯  已经知道了 问题解决了
作者: wooh24    时间: 2016-6-18 13:40
新人来看您们的解决思路的!
作者: 麻辣火锅    时间: 2016-8-6 09:46
public static void main(String[] args) {
               
                double x = 0.01;
                int count = 0;
                while (x<=8848){
                        x+=x;
                        count++;
                }
                System.out.println("折叠次数:"+count);
        }
这样更简单
作者: 困难熊    时间: 2016-9-24 23:56
又涨知识了
作者: 郑大仙丶    时间: 2016-9-25 00:18
兄弟,你折完纸是乘2的高度啊 不是加1...........




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2