package homework;public class Test1 { public static void main(String[] args) { int sum = 50;
int i = 50;
int chuShu = 0;
int yuShu = 0;
for (; i > 2; i--) {
chuShu = i / 3;
yuShu = i % 3;
sum += chuShu;
i = chuShu + yuShu;
}
System.out.println(sum);
//System.out.println(2/3);
//System.out.println(2%3);
}
}/*
 * 
 * 1、 50 瓶可乐,3 空瓶换一瓶,一共能喝多少?
 * 
 * 笔算结果为  50+16+6+2=74
 * 
 * 可是输出结果为73,觉得过程没有错,不知道错在哪儿?
 * 
 */

解决方案 »

  1.   

    如果不让借瓶子的话,公式稍微复杂一些:喝汽水的数量:(N * 3) / 2 - (1 - N % 2)
    剩下空瓶数量:(N + 1) % 2 + 1
      

  2.   


    int sum = 50;
            int i = 50;
            int chuShu = 0;
            int yuShu = 0;
            for (; i >2; i--) {
                chuShu = i / 3;
                yuShu = i % 3;
                sum=sum+chuShu;
                if(i>2)
                 i=1+chuShu + yuShu;
                else{
                 i=chuShu + yuShu;
                }
            }
            System.out.println(sum);
           //输出结果 74
    你调试过了吗 你每次i-- 的时候循环里的i就变为17了(应该是18)。
    导致除数与余数不对。结果自然变换成73
      

  3.   


    嗯 知道了  多谢 = =
    不过有更好的方法了
    package homework;public class Test1 {
    public static void main(String[] args) {
    int tong = 50;
    int count=0;
    while(tong>=1){
    count++;
    tong--;
    if(count%3==0){
    tong++;
    }
    }
    System.out.println(count); 
    }

    }
    //1、 50 瓶可乐,3 空瓶换一瓶,一共能喝多少?