题解 | #汽水瓶#
汽水瓶
https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
#include <iostream>
using namespace std;
int GetMaxNum(int num)
{
int drinks = 0;
if (num == 1)
{
return 0;
}
if (num == 2)
{
return 1;
}
drinks = num / 3;
num = drinks + (num % 3);
return drinks + GetMaxNum(num);
}
int main() {
int num = 0;
while (cin >> num)
{
if (num <= 0)
{
break;
}
else
{
cout << GetMaxNum(num) << endl;
}
}
return 0;
}
// 64 位输出请用 printf("%lld")
写一个递归函数得到最多喝下的瓶数,num表示空瓶数,drinks表示每轮兑换并喝下的瓶数,主要要理解1个空瓶不能再兑换,两个空瓶可以最后再换一瓶这个递归出口。