读书人

java循环的小疑点

发布时间: 2012-09-27 11:11:17 作者: rapoo

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;
}

}

读书人网 >J2SE开发

热点推荐