Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาจำนวนของเล่นขนาดใหญ่สูงสุดโดยแลกเปลี่ยนกับของเล่นขนาดเล็กใน C++


เราได้รับของเล่นขนาดใหญ่ (big toys) และของเล่นขนาดเล็ก (small toys) จำนวนหนึ่ง พารามิเตอร์ a คือจำนวนของเล่นขนาดใหญ่ที่แลกได้จากของเล่นขนาดเล็ก และ b คือจำนวนของเล่นขนาดเล็กที่แลกได้จากของเล่นขนาดใหญ่ เป้าหมายคือหาจำนวนของเล่นขนาดใหญ่สูงสุดที่สามารถได้มาโดยการแลกเปลี่ยนของเล่นขนาดเล็ก

อินพุต − big_toys = 8, small_toys = 20, a = 6, b = 4

เอาต์พุต − Maximize big when both big and small can be exchanged are − 11

คำอธิบาย − จำนวนของเล่นขนาดใหญ่สูงสุดที่ซื้อได้จากของเล่นขนาดเล็ก 20 ชิ้น คือ 11 ชิ้น

อินพุต − big_toys = 3, small_toys = 10, a = 4, b = 2

เอาต์พุต − Maximize big when both big and small can be exchanged are: 5

คำอธิบาย − จำนวนของเล่นขนาดใหญ่สูงสุดที่ซื้อได้จากของเล่นขนาดเล็ก 10 ชิ้น คือ 5 ชิ้น

วิธีการที่ใช้ในโปรแกรมด้านล่าง

  • รับจำนวนของเล่นขนาดใหญ่ ขนาดเล็ก และอัตราแลกเปลี่ยน a, b
  • หาก a < b ให้รวมของเล่นขนาดเล็กทั้งหมด (small_toys += b * big_toys) และตั้ง big_toys = 0
  • คำนวณ big_toys ใหม่ = big_toys + (small_toys / a)
  • คืนค่า big_toys ซึ่งเป็นจำนวนของเล่นขนาดใหญ่สูงสุด
  • พิมพ์ผลลัพธ์

ตัวอย่างโค้ด

#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