题目描述
小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有 无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品。
输入格式
两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯中金币的面值。
输出格式
一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。
由于两数互质,所以gcd(a,b)=1 lcm(a,b)=a*b
如果一个数k可以被表示出,那么k=ax+by
N=ax+by 因为N不能被合法表示出,有N=ax (mod b)
如果N不合法,那么y<0
因为N最大,x最大(mod b)
所以x=b-1 y=-1
则N=a*(b-1)-b
展开得N=ab-a-b
//注意范围,要开long long
考试做法:打表找规律
#include<iostream> using namespace std; int main() { long long a,b; cin>>a>>b; cout<<a*b-a-b; return 0; }