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

โปรแกรม C++ หาขั้นต่ำว่าต้องจ่ายกี่บาท ถึงจะซื้อน้ำได้ n ลิตร


สมมติว่าเรามีตัวเลขสามตัว n, a และ b เราต้องการซื้อน้ำ n ลิตร ขวดน้ำในบริเวณใกล้เคียงมีเพียงสองประเภทเท่านั้น คือ ขวดขนาด 1 ลิตร และขวด 2 ลิตร ขวดประเภทแรกรูปีและขวดประเภทที่สองราคาขรูปี เราต้องการใช้จ่ายเงินให้น้อยที่สุด เราต้องหาเงินขั้นต่ำเพื่อซื้อน้ำให้ได้ n ลิตร

ดังนั้น ถ้าอินพุตเป็นเหมือน n =7; ก =3; b =2 แล้วเอาท์พุตจะเป็น 9 เพราะด้วยขวดขนาด 2 ลิตร 3 ขวด เราจะได้น้ำ 6 ลิตรในราคา 6 ดังนั้นต้องใช้ขวดขนาด 1 ลิตร 1 ขวดสำหรับราคา 3

ขั้นตอน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

b := minimum of a * 2 and b
return (n / 2 * b) + (n mod 2) * a

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <bits/stdc++.h>
using namespace std;

int solve(int n, int a, int b) {
   b = min(a * 2, b);
   return n / 2 * b + n % 2 * a;
}
int main() {
   int n = 7;
   int a = 3;
   int b = 2;
   cout << solve(n, a, b) << endl;
}

อินพุต

7, 3, 2

ผลลัพธ์

9