1. 简单使用递归解决。
  2. 注意返回时的边界值。
#include <iostream>

using namespace std;

int calculate(int curr, int all) {

    if (curr == 2) {
        all++;
        return all;
    }
    else if (curr == 1) {
        return all;
    }


    all += curr / 3; // 可以换的汽水数目
    curr = curr % 3 + curr / 3; // 目前空瓶子数目

    all = calculate(curr, all);

    return all;
}



int main() {

    int n;

    while (cin >> n) {
        if (n == 0) continue;

        int res = calculate(n, 0);

        cout << res << endl;

    }


    return 0;
}