黑马程序员技术交流社区

标题: 求高手鉴定! [打印本页]

作者: 悟中生有    时间: 2013-12-7 13:21
标题: 求高手鉴定!
本帖最后由 悟中生有 于 2013-12-7 14:17 编辑

题目是:一张厚0.01m的纸,每折一次厚度增加2倍,求折几次后厚度会到达8848m(厚度不小于8848m)?
以下是我自己写的代码,请高手看看是否可行?

/**
要求:
一张厚0.01m的纸,每折一次厚度增加2倍,
求折几次后厚度会到达8848m(厚度不小于8848m)?
思路:
1,有一个未知数,两个变量,折的次数未知,纸的厚度在不断变化。
2,定义一个int型变量x初始化值为0代表折纸的次数,
3,运用for循环实现厚度的增加,循环内部定义一个double型变量(有小数存在)y,运用if语句判断y的值大于8848时,循环结束。
4,获取x的值得知折纸次数。
*/
class CiShu {
public static void main(String[] args) {
  int x = 0;                                                   //定义一个int型变量x
  for (double y = 0.01;y<=8848 ;y = y+y) //for循环体。
   {  
    if(y<=8848)                                        //当y的值大于8848时,循环结束。
     x++;                                                 //循环一次x的值自增一次。
  }
  System.out.println("x="+x);             //输出最终x的值既折纸的次数。
}
}



作者: 小痞痞    时间: 2013-12-7 13:52
最后x的值是20就对了
作者: 悟中生有    时间: 2013-12-7 14:05
小痞痞 发表于 2013-12-7 13:52
最后x的值是20就对了

那就是对了,嘿嘿! 多谢指教!:)
作者: 小痞痞    时间: 2013-12-7 14:06
悟中生有 发表于 2013-12-7 14:05
那就是对了,嘿嘿! 多谢指教!

不客气的啊
作者: FFF    时间: 2013-12-7 14:24
  1.                 int s =0;
  2.                 for(double x=0.01;x<8848;x=x*2){
  3.                         s++;
  4.                 }
  5.                 System.out.println(s);
复制代码

作者: 悟中生有    时间: 2013-12-7 14:56
FFF 发表于 2013-12-7 14:24

这个好简洁,,多谢指教:)




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