在C++中,當大玩具和小玩具可以互相兌換時,如何最大化大玩具的數量


假設我們有一個大的物體,我們稱之為“a”,還有一個小的物體,我們稱之為“b”。物體“a”和“b”的選擇取決於使用者。在下面的例子中,我們將物體視為大小不同的玩具。任務是計算透過用小玩具兌換所能獲得的最大大玩具數量。

輸入 − big_toys = 8, small_toys = 20, a = 6, b = 4

輸出 − 當大玩具和小玩具可以互相兌換時,最大大玩具數量為:11

解釋 − 使用小玩具(即20個)可以購買的最大大玩具數量為11個。

輸入 − big_toys = 3, small_toys = 10, a = 4, b = 2

輸出 − 當大玩具和小玩具可以互相兌換時,最大大玩具數量為:5

解釋 − 使用小玩具(即10個)可以購買的最大大玩具數量為5個。

下面程式中使用的演算法如下:

  • 輸入大玩具和小玩具的總數。另外,將“a”設為可以用小玩具兌換的大玩具總數,將“b”設為可以用大玩具兌換的小玩具總數。

  • 如果 a < b,則將小玩具總數設定為現有小玩具總數加上 b * 現有大玩具總數,並將大玩具數量設定為 0。

  • 現在,將大玩具總數設定為現有大玩具總數加上小玩具總數除以 a 的結果。

  • 返回大玩具總數,因為我們需要計算用小玩具兌換所能獲得的最大大玩具數量。

  • 列印結果。

示例

 線上演示

#include <iostream>
using namespace std;
int maximum(int big_toys, int small_toys,int a, int b){
   if (a < b){
      small_toys += b * big_toys;
      big_toys = 0;
   }
   big_toys += (small_toys / a);
   return big_toys;
}
int main(){
   int big_toys = 8, small_toys = 20;
   int a = 6, b = 4;
   cout<<"Maximize big when both big and small can be exchanged are:"<<maximum(big_toys, small_toys, a, b);
   return 0;
}

輸出

Maximize big when both big and small can be exchanged are: 11

更新於:2020年8月3日

150 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告