สมมติว่าเรามีตัวเลขสามตัว a, b และ c มีมะนาว บีแอปเปิ้ล และลูกแพร์ซี ในการทำผลไม้แช่อิ่ม อัตราส่วนผลไม้จะเป็น 1 :2 :4 เราไม่สามารถหั่นผลไม้เป็นชิ้นๆ ได้ เราต้องหาจำนวนสูงสุดของมะนาว แอปเปิ้ล และลูกแพร์ที่เราสามารถทำผลไม้แช่อิ่มได้ ถ้าเป็นไปไม่ได้ ให้คืนค่า 0
ดังนั้นหากอินพุตเป็นเหมือน a =4; ข =7; c =13 แล้วผลลัพธ์จะเป็น 21 เพราะเราสามารถใช้ 3 มะนาว 6 แอปเปิ้ลและ 12 ลูกแพร์ดังนั้นคำตอบคือ 3 + 6 + 12 =21
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
return 7 * (minimum of a, floor of (b / 2) and floor of (c / 4))
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <bits/stdc++.h>
using namespace std;
int solve(int a, int b, int c){
return 7 * min(a, min(b / 2, c / 4));
}
int main(){
int a = 4;
int b = 7;
int c = 13;
cout << solve(a, b, c) << endl;
} อินพุต
4, 7, 13
ผลลัพธ์
21