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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zk342577507 中级黑马   /  2016-3-4 23:38  /  1176 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

4.分析以下需求,并用代码实现:
        (1)珠穆朗玛峰高度为8848米,有一张足够大的纸,厚度为0.01米
        (2)请问,我折叠多少次,可以折成珠穆朗玛峰的高度。

14 个回复

倒序浏览
用递归做就可以了
回复 使用道具 举报
for循环里面写个if语句就行了。
回复 使用道具 举报
public class Day4Test {
        public static void main(String[] args) {

                int times = 0; // 设置初始计数器
                double paperHeight = 0.1;// 假设一张纸的基本厚度是1cm
                while (paperHeight <= 884443) {// 假设珠穆朗玛峰的高度是884800cm
                        paperHeight *= 2;
                        times++;
                }
                System.out.println("需要折纸的次数为:" + times);// 输出次数
                System.out.println("纸张最后的高度为:" + paperHeight);// 输出最后纸张的高度
        }

}

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 很给力!

查看全部评分

回复 使用道具 举报
这是for循环解决的问题呀
回复 使用道具 举报
可以用递归
回复 使用道具 举报
超人d咖啡也加糖 发表于 2016-3-7 11:54
public class Day4Test {
        public static void main(String[] args) {

写错一个地方,纸张的厚度为1厘米才对,也就是paperHeight=1,这是改过的

public class Day4Test {
        public static void main(String[] args) {

                int times = 0; // 设置初始计数器
                double paperHeight = 1;// 假设一张纸的基本厚度是1cm
                while (paperHeight <= 884443) {// 假设珠穆朗玛峰的高度是884843cm
                        paperHeight *= 2;
                        times++;
                }
                System.out.println("需要折纸的次数为:" + times);// 输出次数
                System.out.println("纸张最后的高度为:" + paperHeight);// 输出最后纸张的高度

        }
}
回复 使用道具 举报
class D {
        public static void main (String[]args) {
                int i=1;
                while (true) {
                        int temp = 1<<i;
                        if (temp>=8848000) {
                                break;
                        }
                        i++;
                }
                System.out.println("折"+i+"次可达到珠穆朗玛峰的高度");
               
       
        }
}//折24次可达到珠穆朗玛峰的高度
回复 使用道具 举报
奋飞的小模糊 发表于 2016-3-7 15:09
class D {
        public static void main (String[]args) {
                int i=1;

一:利用死循环,用break,跳出
二:采用位操作,提高运算效率(注意先把小数转换成整数才能位操作)
回复 使用道具 举报
很简单的一个for或者while()循环
回复 使用道具 举报
超人d咖啡也加糖 发表于 2016-3-7 11:54
public class Day4Test {
        public static void main(String[] args) {

你的paperHeight *= 2;是什么意思
回复 使用道具 举报
Do、 发表于 2016-3-7 19:12
你的paperHeight *= 2;是什么意思

折一次高度变成原来的2倍
回复 使用道具 举报
while循环就可以
回复 使用道具 举报
while循环就可以做
回复 使用道具 举报
很明显这个不知道要折叠多少次,肯定是while循环啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马