A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Test1 {
        public static void main(String[] args) {
        int zhi = 1,zhu =884800,i = 1;
        while ((zhi << i) < zhu) {
        i++;
        }
        System.out.println("次数" + i);
}
}

结果:次数20

7 个回复

倒序浏览
int hight=1;
                                 int n=0;
                                 while (hight<8848000) {
                                         hight*=2;
                                         n++;
                 }
                         System.out.println(n);n=24;
回复 使用道具 举报
老司机喔 发表于 2016-5-14 23:37
int hight=1;
                                 int n=0;
                                 while (hight ...

你的也是正解,不过珠峰比我的高了点
回复 使用道具 举报
Hight是纸的初始高度,N是计数器
回复 使用道具 举报
int count = 0;                //先定义一个变量让它记录住每次折叠的次数
                int i = 1;                                //初始化语句
                while (true){                        //while的死循环
                        count++;                        //让变量记住每次折叠的次数
                        i= (2*i);                        //折叠的规律:(当折叠一次纸张的厚度就为2,第二次折叠的厚度为4,第三次厚度为8,)
                       
                        if (i > 8844000){        //判断条件(把8844米转换成8844000毫米,)
                               
                               
                                System.out.println(count);                                //打印每次折叠的次数
                                break;                                                                        //如果高度大于条件就让它跳出循环
                               

                        }
回复 使用道具 举报
位移实现!新的思路,受教了!
回复 使用道具 举报
Deleba 中级黑马 2016-5-15 16:39:55
7#
1米=1000毫米,肯定是8848000毫米,应该是30次。
思路很新奇,学到了。
回复 使用道具 举报
zhanghui1851155 发表于 2016-5-15 14:13
int count = 0;                //先定义一个变量让它记录住每次折叠的次数
                int i = 1;                                //初始化语句
                while (true) ...

还是有注释让人看起来舒服
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马