本题模拟思路较为简单,每三个空瓶子兑换一个汽水,需要注意的时候,最后如果剩下两个空瓶子,仍可以兑换一瓶汽水。

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    int res = 0;
    vector<int> result;
    while (cin >> n) {
        if (n == 0) break;
        while (n / 3 > 0) {
            int rem = n % 3;   // 剩余多少个空瓶子
            int inter = n / 3;         // 当前空瓶子可以兑换多少瓶汽水
            res = res + inter;
            n = rem + inter;
            if (n == 2) n++;   // 如果还剩两个空瓶子,可以向老板借一个,喝完后再将空瓶子还给老板
        }
        result.push_back(res);
        res = 0;
    }
    for (vector<int>::iterator iter = result.begin(); iter != result.end(); iter++) {
        cout << *iter << endl;
    }
    return 0;
}