public class watermelon { /** 
* 有1020个西瓜,第一天卖一半多2个,以后每天卖剩下的一半多2个, 
* 问几天以后能卖完 
*/ 
public static void main(String[] args) { 
int x1,x2,day; 
x1=1020; 
day=0; while(x1==0){ 
x2=x1/2-2; 
x1=x2; 
day++;} 
System.out.println("the day is "+day); // TODO Auto-generated method stub } } 
运行出错误~但是我怎么也看不出来,望指点!!

解决方案 »

  1.   

    public static void main(String[] args) { 
    int total = 1020; 
    int totalSales = 0; 
    int totalLeft = 1020
    int days = 0; while(totalLeft > 0){ 
    totalSales += totalLeft/2 + 2; 
    totalLeft = total - totalSales; 
    days++;
    } System.out.println("the day is " + day); // TODO Auto-generated method stub } }
      

  2.   

    将while(x1==0)
    改为while(x1>=0)就行了, 原因和JAVA的除法规则有关
      

  3.   

    while(x1==0)这句话的意思是当x1变量的值为0的时候才执行while循环的语句改成将while(x1>0)
    就可以了!
      

  4.   

    public class watermelon { /** 
    * 有1020个西瓜,第一天卖一半多2个,以后每天卖剩下的一半多2个, 
    * 问几天以后能卖完 
    */ 
    public static void main(String[] args) { 
    int x1,x2,day; 
    x1=1020; 
    day=0; while(x1!=0){ 
    x2=x1/2-2; 
    x1=x2; 
    day++;} 
    System.out.println("the day is "+day); // TODO Auto-generated method stub } } 
    答案是8天
      

  5.   

    楼上的这样如果把x2=x1/2-2改成x2=x1/2-3,即每天买出一半多三个程序就死了呢。while(x1>=0){ 
    x2=x1/2-2; 
    x1=x2; 
    day++;} 
      

  6.   

    不对吧!
    while(x1!=0){ 
    x2=x1-(x1/2-2); 
    x1=x2; 
    day++;}
      

  7.   

    x1=0的时候已经卖完了.应该是while(x1>0){ 
    x2=x1-(x1/2-2); 
    x1=x2; 
    day++;}