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

更新时间: 2022年3月4日

153 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告