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 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告