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