题目链接

题目描述

小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有 无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品。

输入格式

两个正整数 $a$ 和 $b$,它们之间用一个空格隔开,表示小凯中金币的面值。

输出格式

一个正整数 $N$,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。

题解

不妨设 $a<b$

假设答案为 $x$

$x \equiv ma \pmod b (1 \leq m \leq b - 1)$

$x = ma + nb (1 \leq m \leq b - 1)$

显然当 $n \geq 0$时 $x$ 可以用 $a, b$表示出来,不合题意。

因此当 $n = -1$时 $x$ 取得最大值,此时 $x = ma - b$

显然当 $m$ 取得最大值 $b - 1$时 $x$ 最大,此时 $x = (b - 1)a - b = ab - a - b$

因此$ a, b$所表示不出的最大的数是 $ab - a - b$

代码如下:

1
2
3
4
5
6
7
8
9
10
#include <bits/stdc++.h>

using namespace std;

int main() {
long long a, b;
scanf("%lld %lld", &a, &b);
printf("%lld\n", a * b - a - b);
return 0;
}

评论