Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để tìm ra tối thiểu bao nhiêu rupee chúng ta phải trả để mua chính xác n lít nước

Giả sử chúng ta có ba số n, a và b. Chúng tôi muốn mua n lít nước. Gần đó chỉ có hai loại bình nước là bình 1 lít và bình 2 lít. Chai của loại thứ nhất a rupee và chai của loại thứ hai có giá b rupee. Chúng tôi muốn chi tiêu càng ít tiền càng tốt. Chúng ta phải tìm ra số tiền tối thiểu mà chúng ta cần để mua đúng n lít nước.

Vì vậy, nếu đầu vào giống như n =7; a =3; b =2 thì sản lượng sẽ là 9, vì với 3 bình 2 lít ta lấy được 6 lít nước với giá 6 thì cần một bình 1 lít với giá 3.

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

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

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#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;
}

Đầu vào

7, 3, 2

Đầu ra

9