C ++中的啤酒瓶

假设我们有一个数字n。在此,n表示n个完整的啤酒瓶。如果我们可以将3个空啤酒瓶换成1完整的啤酒瓶,则必须找到可以饮用的啤酒瓶数量。

因此,如果输入为10,则输出为14。

为了解决这个问题,我们将遵循以下步骤-

  • 定义一个函数solve(),将花费n,

  • ret:= 0

  • 当n> = 3时,-

    • q:= n / 3

    • ret:= ret + q * 3

    • n:= n-q * 3

    • n:= n + q

  • ret:= ret + n

  • 返回ret

让我们看下面的实现以更好地理解-

示例

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int solve(int n) {
      int ret = 0;
      while(n >= 3){
         int q = n / 3;
         ret += q * 3;
         n -= q * 3;
         n += q;
      }
      ret += n;
      return ret;
   }
};
main() {
   Solution ob;
   cout << ob.solve(10);
}

输入值

10

输出结果

14