本题模拟思路较为简单,每三个空瓶子兑换一个汽水,需要注意的时候,最后如果剩下两个空瓶子,仍可以兑换一瓶汽水。
#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;
}