C++程序,用于查找购买正好n升水的最低花费(以卢比计)
假设我们有三个数字n、a和b。我们想要购买n升水。附近只有两种类型的水瓶,1升水瓶和2升水瓶。第一种类型的水瓶价格为a卢比,第二种类型的水瓶价格为b卢比。我们希望尽可能少地花钱。我们需要找到购买正好n升水的最低金额。
因此,如果输入类似于n = 7;a = 3;b = 2,则输出将为9,因为使用3个2升水瓶我们可以获得6升水,价格为6,然后需要一个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
广告