黑马程序员技术交流社区
标题:
求高手鉴定!
[打印本页]
作者:
悟中生有
时间:
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
int s =0;
for(double x=0.01;x<8848;x=x*2){
s++;
}
System.out.println(s);
复制代码
作者:
悟中生有
时间:
2013-12-7 14:56
FFF 发表于 2013-12-7 14:24
这个好简洁,,多谢指教:)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2