当前位置: 代码迷 >> J2SE >> java循环的小疑点
  详细解决方案

java循环的小疑点

热度:3449   发布时间:2013-02-25 00:00:00.0
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;
}

}
  相关解决方案