解答1:通过整数除法与模运算int count=0;while(n>=3){ int k = n / 3; count += k; //喝掉的数量 n = n % 3 + k; //剩余的空瓶子 if(n==2)//处理尾部情况 { count++; break; }} 解答2:推理 每喝掉一瓶汽水,剩余的空瓶子都会少2瓶,而当剩余2瓶时,也可以喝一瓶 因此通过整数除法,int k = n/2; (n%2的余数小于2,不能再喝,因此k即是所求);