根據給定範圍確定包大小的 C++ 程式碼


假設我們有兩個數字 l 和 r。有一家商店,我們想以折扣價出售裝有 'a' 個食物的食品容器,一些顧客想購買 x 個食物。顧客遵循貪婪策略:

  • 他以折扣價購買 floor(x/a) 包。

  • 然後想逐個購買剩餘的 (x mod a) 個食物。

但顧客很貪婪,如果他想要逐個購買 (x mod a) 個食物,並且碰巧 (x mod a) ≥ a/2,那麼他決定購買整包 a 個食物。顧客可以在 l 到 r(包括兩端)範圍內購買任意數量的食物,我們必須檢查是否可以選擇這樣的包裝大小 a,使得每個顧客購買的食物數量都超過他們最初想要的數量?

因此,如果輸入為 l = 3;r = 4,則輸出為 True,因為如果 a = 5,那麼如果他們想購買 3 或 4 個罐頭,他們可以購買一包。

步驟

為了解決這個問題,我們將遵循以下步驟:

if r / 2 >= l, then:
   return false
Otherwise
   return true

示例

讓我們看看下面的實現來更好地理解:

#include <bits/stdc++.h>
using namespace std;
bool solve(int l, int r){
   if (r / 2 >= l)
      return false;
   else
      return true;
}
int main(){
   int l = 3;
   int r = 4;
   cout << solve(l, r) << endl;
}

輸入

3,4

輸出

1

更新於:2022年3月11日

瀏覽量:116

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告