我的程序哪里错了呀?
题目要求公司的业绩06年8万,以125%的速度增长什么时候到20万?程序代码:
public class Ab {
/**
* @param args
*/
public static void main(String[] args) {
double first=8;
double cre=1+25/100;
int year=2006;
while(first<=20){
first=first*cre;
year++;
}
System.out.println("以25%的增长速度,"+year+"年能达到20万的人数");
// TODO Auto-generated method stub
}
}
----------------解决方案--------------------------------------------------------
是25%的速度增长。
----------------解决方案--------------------------------------------------------
程序代码:
public class Ab {
/**
* @param args
*/
public static void main(String[] args) {
double first=8;
double cre=1+25*1.0/100;
int year=2006;
while(first<=20){
first=first*cre;
year++;
}
System.out.println("以25%的增长速度,"+year+"年能达到20万的人数");
// TODO Auto-generated method stub
}
}
你的代码错在这句double cre=1+25/100;
这样cre=1
25/100 这样程序会认为是int除以int,那么返回int,得到的0.25会被转成int类型,就得到0了
那么cre=1+0得1
所以程序永远不会跳出循环。
----------------解决方案--------------------------------------------------------
为啥直接写cre=1.25;就对了呢?
这么写就死循环呢?
----------------解决方案--------------------------------------------------------
哦哦 是呀
----------------解决方案--------------------------------------------------------
谢谢版主了
----------------解决方案--------------------------------------------------------