import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n, count;
        while ((n = in.nextInt()) != 0) {
            count = 0;
            while (n > 2) {
                // 未参与兑换的瓶子 e.g. 四个空瓶 三个空瓶兑换一瓶汽水 还剩一个未参与
                int r = n % 3;
                // 三个空瓶兑换一瓶汽水 那么兑换了n瓶汽水
                int q = n / 3;
                // 累加兑换
                count += q;
                // 兑换的瓶子(喝完的空瓶子) + 未参与兑换的瓶子 = 下一轮兑换的瓶子
                n = r + q;
            }
            // 如果最后剩两个瓶子 还能再兑换一个(借一法)
            System.out.println(n == 2 ? count + 1 : count);
        } 
    }
}
上面是朴素解法 在题解里看到了 贪心思想的解法 很妙
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n;
        while ((n = in.nextInt()) != 0) {
            System.out.println(n / 2);
        } 
    }
}