題目描述
小凱手中有兩種面值的金幣,兩種面值均爲正整數且彼此互素。每種金幣小凱都有無數個。在不找零的情況下,僅憑這兩種金幣,有些物品他是無法準確支付的。現在小凱想知道在無法準確支付的物品中,最貴的價值是多少金幣?注意:輸入數據保證存在小凱無法準確支付的商品。
輸入描述:
輸入數據僅一行,包含兩個正整數 a 和 b,它們之間用一個空格隔開,表示小凱手中金幣的面值。
輸出描述:
輸出文件僅一行,一個正整數 N,表示不找零的情況下,小凱用手中的金幣不能準確支付的最貴的物品的價值。
示例1
輸入
3 7
輸出
11
說明
小凱手中有面值爲3和7的金幣無數個,在不找零的前提下無法準確支付價值爲 1、2、4、5、8、11的物品,其中最貴的物品價值爲11。 比11貴的物品都能買到,比如: 12 = 3 x 4 + 7 x 0 13 = 3 x 2 + 7 x1 14 = 3 x 0 + 7 x 2 15 = 3 x 5 + 7 x 0
備註:
對於 30% 的數據:1 ≤ a,b ≤ 50; 對於 60% 的數據: 1 ≤ a,b ≤ 10,000; 對於 100% 的數據:1 ≤ a,b ≤ 1,000,000,000。
題解 : 給定a,b . 且gcd(a,b)=1,求最大的C,使得C不能被表示爲ax+by(x≥0,y≥0)的形式
網上有大神給出一道數學定理 - 賽瓦維斯特定理. 即答案是 a*b - a -b ;
證明 : https://www.cnblogs.com/xxzh/p/9178564.html
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
using namespace std ;
typedef long long LL ;
int main()
{
LL a ,b ;
scanf("%lld%lld",&a,&b);
printf("%lld",a*b-a-b);
return 0 ;
}