java循环的小问题,在线等

zgycsmb 2012-08-16 08:22:27
java文件中


一条线,长3000米,以后每一天,变成上一天的 一半,最后变成5米了,请问,一共变了几天
这怎么写呀,
...全文
182 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
6Glory9 2012-08-16
  • 打赏
  • 举报
回复
int length = 3000;
int day = 0;
while (true) {
length = length / 2;
day++;
if (length == 5) {
System.out.println("这么多天才得行:" + day);
break;
}
if (length < 5) {
System.out.println("没有合适天数");
break;
}

}
Sad4This 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

Java code

int length = 3000;
int day = 0;
while(length != 5){
length /= 2;
day++;
}

System.out.println(day);
[/Quote]
楼上说的对,应该改成

int length = 3000;
int day = 0;
while(length > 5){
length /= 2;
day++;
}
lazysmallcat 2012-08-16
  • 打赏
  • 举报
回复

//一条线,长3000米,以后每一天,变成上一天的 一半,最后变成5米了,请问,一共变了几天

public class Test {
public static void main(String args[]){
int length=3000;
int time=0;
while(length>5){
length=length/2;
time++;
System.out.println("3000米的线变成"+length+"米"+"需要的天数为:"+time);

}

}
}

实际上,这个题不可能会变成5米的,改用double类型就能看出来

//一条线,长3000米,以后每一天,变成上一天的 一半,最后变成5米了,请问,一共变了几天

public class Test1 {
public static void main(String args[]){
double length=3000;
double time=0;
while(length>=5){
length=length/2;
time++;
System.out.println("3000米的线变成"+length+"米"+"需要的天数为:"+time);

}

}
}


脉动回来 2012-08-16
  • 打赏
  • 举报
回复

public int cou(int tLen,int days){
return tLen==5?days:cou(tLen/2,days++);
}


这个应该可以吧
Sad4This 2012-08-16
  • 打赏
  • 举报
回复

int length = 3000;
int day = 0;
while(length != 5){
length /= 2;
day++;
}

System.out.println(day);
CCAV521 2012-08-16
  • 打赏
  • 举报
回复
int x=3000;
int y=5;
int z=0;
while(x>=2*y){
x=x/2;
z=z+1;
}
System.out.println(z);

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧