题解 | #汽水瓶#
汽水瓶
http://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
- 简单使用递归解决。
- 注意返回时的边界值。
#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;
}算法解析 文章被收录于专栏
这里主要是算法岗的自我思路总结