在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
廣告