题解 | #汽水瓶#
汽水瓶
http://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
原理
使用递归。本题也可以使用逻辑推理得出简便解法,不做赘述。
复习递归,逻辑关系在于喝完了的空瓶子又可以重新兑换(调用递归),递归终止的条件是:只剩两个空瓶子,最后抵账,不能继续兑换。
my code
#include<iostream> using namespace std; int solution(int n){ int cnt = 0; if(n==2) cnt++; if(n>2) cnt = n/3 + solution(n%3 + n/3); return cnt; } int main(){ int N; while(cin >> N){ if(!N) break; int i = solution(N); cout << i << endl; } }