在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 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告