題目詳述:汽水瓶
題目解析:當有n個空瓶時候,我們設總共可以喝total瓶飲料,那麼當n>2時,說明我們可以去換飲料喝。3個換一瓶,那麼可以換n/3瓶飲料。接下來,這些飲料喝完後,勢必還有空瓶。那麼喝完n/3瓶飲料之後的空瓶數是多
少?
答案是:n/3+n%3。這裏需要注意:n/3代表換來的飲料,但是這些喝完之後,不就是空瓶嗎?相同的爲什麼需要n%3? 因爲比如n=4,最後的空瓶數應該是2。不就是n/3+n%3嗎?到這裏,我們在看一下。n>2時,可以去換,那
麼n=2時,我們可以去商鋪借一瓶飲料。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
while(sc.hasNext()){
n =sc.nextInt();
if(n!=0) {
System.out.println(drink(n));
}
}
}
private static int drink(int n) {
int total = 0;//飲料總數
//當大於兩個空瓶的時候纔可以換飲料
while(n > 2) {
total = total+n/3; //n/3-->能夠換來的飲料
n = n/3 + n%3; //新的空瓶子個數--》n%3可能會不能整除
}
//如果n==2,說明有兩個空瓶可以喝商家借一瓶飲料
if(n == 2) {
total = total + 1;
}
return total;
}
}