Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tối đa hóa đồ chơi lớn khi cả đồ lớn và nhỏ có thể trao đổi trong C++


Chúng ta được cho một đồ chơi lớn 'a' và một đồ chơi nhỏ 'b'. Lựa chọn cho 'a' và 'b' phụ thuộc vào người dùng. Trong ví dụ dưới đây, chúng ta coi các đồ chơi là đồ lớn và nhỏ theo đặc điểm kích thước. Nhiệm vụ là tính số lượng đồ chơi lớn tối đa có thể đạt được bằng cách đổi đồ chơi nhỏ.

Ví dụ

Đầu vào − big_toys = 8, small_toys = 20, a = 6, b = 4

Đầu ra − Tối đa hóa đồ lớn khi cả lớn và nhỏ có thể trao đổi là − 11

Giải thích − Số lượng đồ chơi lớn tối đa có thể mua bằng đồ chơi nhỏ là 11.

Đầu vào − big_toys = 3, small_toys = 10, a = 4, b = 2

Đầu ra − Tối đa hóa đồ lớn khi cả lớn và nhỏ có thể trao đổi là: 5

Giải thích − Số lượng đồ chơi lớn tối đa có thể mua bằng đồ chơi nhỏ là 5.

Phương pháp sử dụng trong chương trình dưới đây

  • Nhập tổng số đồ chơi lớn và nhỏ. Cũng lấy 'a' là tổng số đồ lớn có thể đổi lấy đồ nhỏ và 'b' là tổng số đồ nhỏ có thể đổi lấy đồ lớn.
  • Nếu a < b thì gán small_toys = small_toys + b * big_toys và big_toys = 0.
  • Gán big_toys = big_toys + small_toys / a.
  • Trả về tổng số đồ lớn vì chúng ta cần tối đa số đồ lớn có thể đổi lấy đồ nhỏ.
  • In kết quả.

Ví dụ mã nguồn

#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 << "Tối đa hóa đồ lớn khi cả lớn và nhỏ có thể trao đổi: " 
         << maximum(big_toys, small_toys, a, b); 
    return 0; 
}

Kết quả

Tối đa hóa đồ lớn khi cả lớn và nhỏ có thể trao đổi: 11