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

更新于:2020年9月2日

240 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.