啤酒一块钱一瓶,两个空瓶可以换一瓶啤酒,一个人有n元钱,问这个人可以喝到多少瓶啤酒?要求用递归实现。
1.非递归
int total(int n){int battl = 0;int empty = 0;while (n > 0){--n;++battl;if (++empty == 3){empty = 0;++n;}}return battl;}
2.递归
int fun(int n){if (n/2 > 0)return (n-n%2) + fun(n/2 + n%2);return n;}