第四屆藍橋杯省賽C A組 買不到的數目

2021-08-17 17:49:10 字數 1384 閱讀 3963

小明開了一家糖果店。他別出心裁:把水果糖包成4顆一包和7顆一包的兩種。糖果不能拆包賣。

小朋友來買糖的時候,他就用這兩種包裝來組合。當然有些糖果數目是無法組合出來的,比如要買 10 顆糖。

你可以用計算機測試一下,在這種包裝情況下,最大不能買到的數量是17。大於17的任何數字都可以用4和7組合出來。

本題的要求就是在已知兩個包裝的數量時,求最大不能組合出的數字。

輸入:兩個正整數,表示每種包裝中糖的顆數(都不多於1000)

要求輸出:

乙個正整數,表示最大不能買到的糖數

不需要考慮無解的情況

例如:使用者輸入:

4 7程式應該輸出:

17再例如:

使用者輸入:

3 5程式應該輸出:

7資源約定:

峰值記憶體消耗 < 64m

cpu消耗  < 3000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。

所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。

注意: main函式需要返回0

注意: 只使用ansi c/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。

注意: 所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。

提交時,注意選擇所期望的編譯器型別。

思路:和第八屆的包子湊數很像,但是比那個題簡單。比如有4和7,那麼4、7可以買到,4+4、4+7、7+4、7+7也可以買到,同理把前面這些數字再加上4和7的數也可以買到,以此類推就可以用乙個陣列記錄下所有可以買到的數。接下來就是要找最大買不到的數,假如輸入的是m、n,我們可以記錄下其中較小的那個為min,那麼我們在上一步生成的陣列中搜尋買得到數,如果有連續min個數都可以買到,那麼這個數減掉min就是最大買不到的數目了。

**:

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

int main()

; cin >> m >> n;

sweet[m] = sweet[n] = 1;

minx = min(m, n);

for (i = 1; i < 100000; i++) }

int flag = 0, count = 0;

for (i = 1; i < 100000; i++)

if (flag && !sweet[i])

if (count == minx)

break;

} cout << i - minx << endl;

return 0;

}

第四屆藍橋杯省賽C A組 剪格仔

如圖p1.jpg所示,3 x 3 的格仔中填寫了一些整數。我們沿著圖中的紅色線剪開,得到兩個部分,每個部分的數字和都是60。本題的要求就是請你程式設計判定 對給定的m x n 的格仔中的整數,是否可以分割為兩個部分,使得這兩個區域的數字和相等。如果存在多種解答,請輸出包含左上角格仔的那個區域包含的格...

第四屆藍橋杯省賽C A組 大臣的旅費

很久以前,t王國空前繁榮。為了更好地管理國家,王國修建了大量的快速路,用於連線首都和王國內的各大城市。為節省經費,t國的大臣們經過思考,制定了一套優秀的修建方案,使得任何乙個大城市都能從首都直接或者通過其他大城市間接到達。同時,如果不重複經過大城市,從首都到達每個大城市的方案都是唯一的。j是t國重要...

第四屆藍橋杯 買不到的數目

問題描述 小明開了一家糖果店。他別出心裁 把水果糖包成 4 顆一包和 7 顆一包的兩種,糖果不能拆包賣。小朋友來買糖的時候,他就用這兩種包裝來組合。當然有些糖果數目是無法組合出來的,比如要買 10 顆糖。你可以用計算機測試一下,在這種包裝情況下,最大不能買到的數量是17。大於 17 的任何數字都可以...