原题地址
没什么好讲的,一道简单的模板题
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll x,y;//ax+by=gcd(a,b)
void exgcd(int a,int b){
if(!b){
x=1;//赋初始值
y=0;
return ;//探索到了最后一层,返回上一层
}
exgcd(b,a%b);//ax+by=b*x2+(a mod b)*y2
ll p=x;//存储倒数第二层的x和y值
x=y;//公式x=y2
y=p-a/b*y;//y2=x2-a/b*y2
}
int main(){
ll a,b;
cin>>a>>b;
exgcd(a,b);
x=(x%b+b)%b;
cout<<x<<endl;
}