- 简单使用递归解决。
- 注意返回时的边界值。
#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; }