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

โปรแกรม C++ หาเงินขั้นต่ำที่ต้องจ่ายซื้อน้ำ n ลิตร

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

เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 7; a = 3; b = 2 ผลลัพธ์จะได้ 9 เพราะซื้อขวด 2 ลิตร 3 ขวด ได้ 6 ลิตร ราคา 6 บาท แล้วซื้อขวด 1 ลิตร 1 ขวด ราคา 3 บาท

ขั้นตอนการแก้ปัญหา

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

b := min(a * 2, b) คืนค่า (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