首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java循环的小疑点

2012-09-27 
java循环的小问题,在线等java文件中一条线,长3000米,以后每一天,变成上一天的 一半,最后变成5米了,请问,一

java循环的小问题,在线等
java文件中


一条线,长3000米,以后每一天,变成上一天的 一半,最后变成5米了,请问,一共变了几天
这怎么写呀,


[解决办法]
int x=3000;
int y=5;
int z=0;
while(x>=2*y){
x=x/2;
z=z+1;
}
System.out.println(z);
[解决办法]

Java code
int length = 3000;int day = 0;while(length != 5){   length /= 2;   day++;}System.out.println(day);
[解决办法]
Java code
public int cou(int tLen,int days){return tLen==5?days:cou(tLen/2,days++);}
[解决办法]

//一条线,长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);

}

}
}



[解决办法]
探讨

Java code

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

System.out.println(day);

[解决办法]
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;
}

}

热点排行