算法【凑数问题】

用两个正整数 ( a, b)来凑正整数c,即ax + by = c 。
x,y为整数

那么那些数凑的出来?那些数凑不出来呢?
分别讨论 x,y,c 的情况,进行分析。

(1)当a,b互质的( gcd(a, b) = 1)

  • (x,y为整数)无论 c 为何值,都有整数 x,y 能把 c 凑出来
  • (x,y为非负整数)凑不出来的 c 的个数有限,且最大凑不出来的 c = a * b - a - b

(2)当a,b不互质( gcd(a, b) > 1)

  • 凑不出来的数有无限个
  • 凑的出来的数需要满足条件:c % gcd(a, b) = 0

你可能感兴趣的:(算法)