蓝桥杯第四届初赛-买不到的数目-数论
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯第四届初赛-买不到的数目-数论
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
小明開了一家糖果店。他別出心裁:把水果糖包成4顆一包和7顆一包的兩種。糖果不能拆包賣。
小朋友來買糖的時候,他就用這兩種包裝來組合。當然有些糖果數目是無法組合出來的,比如要買 10 顆糖。
你可以用計算機測試一下,在這種包裝情況下,最大不能買到的數量是17。大于17的任何數字都可以用4和7組合出來。
本題的要求就是在已知兩個包裝的數量時,求最大不能組合出的數字。
輸入
兩個正整數,表示每種包裝中糖的顆數(都不多于1000)
輸入保證兩個正整數互質
輸出
一個正整數,表示最大不能買到的糖數
樣例輸入
4 7
樣例輸出
17
解法一:
代碼如下:
結論:
如果a,b均是正整數且互質,那么由ax+by,x>=0,y>=0,不能湊出的最大數是a*b-a-b
解法二:
#include <iostream> using namespace std; const int N = 1000010; int vis[N];int main() {int a, b;int ans;cin >> a >> b;vis[a] = 1;vis[b] = 1;for (int i = 0; i <= a * b; i++) {if (vis[i] == 1) {vis[i + a] = 1;vis[i + b] = 1;}}for (int i = 0; i <= a * b; i++) {if (vis[i] == 0)ans = i;}cout << ans << endl;return 0; }總結
以上是生活随笔為你收集整理的蓝桥杯第四届初赛-买不到的数目-数论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯2017初赛-k倍区间-前缀和
- 下一篇: 蓝桥杯2018初赛-哪天返回-模拟