java循环的小疑点

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

}
阅读