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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小痞痞 高级黑马   /  2013-9-19 14:38  /  1095 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小痞痞 于 2013-9-19 16:16 编辑

我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。
请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
  1. int sum = 0;
  2.                 for (double d = 0.01;d <= 8848 ;d *= 2 ) {
  3.                         sum++;
  4.                 }
  5.                 System.out.println("一共折叠" + sum + "次");
复制代码
最后输出的结果是sum=20;
感觉结果应该不对吧
不知道哪里出问题了

4 个回复

倒序浏览
一张纸对折最多不超过7次  但是就这个题来说,20是对的吧 你可以算一下,折叠20次后的高度是0.01*(2的20次方)
回复 使用道具 举报
麦子609 发表于 2013-9-19 15:15
一张纸对折最多不超过7次  但是就这个题来说,20是对的吧 你可以算一下,折叠20次后的高度是0.01*(2的20次 ...

想这样算的结果应该是对的   但是估计是个人的思想吧    感觉对折20次不够   嘿嘿
回复 使用道具 举报
是对的,我帮你算了,叠第19此不够,第20此就超过了
  1. public class Demo {
  2.         public static void main(String[] ages){
  3.                 double height=8848;
  4.                 int i=0;
  5.                 double num=0.01;
  6.                 while(true){
  7.                         num=num*2;
  8.                         i++;
  9.                         if(num>=height){
  10.                                 break;
  11.                         }
  12.                 }
  13.                 System.out.println("折叠了i次="+i+"  纸厚度num="+num);
  14.         }
  15. }
复制代码
输出:折叠了i次=20  纸厚度num=10485.76
回复 使用道具 举报
straw 发表于 2013-9-19 15:57
是对的,我帮你算了,叠第19此不够,第20此就超过了输出:折叠了i次=20  纸厚度num=10485.76 ...

恩恩   谢了哈     我写的那个忘记输出最后的厚度了     自己感觉数据好小   嘿嘿
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马