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 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告