死也要学数学原理之exgcd篇
先贴个图,展示一下我对于线性同余方程的思考
好长的图——
再贴个图,展示求解的过程
真的自己推一推(甚至不能算推),好理解一点
再来个图(对不起,懒得打字了)
输出——
https://vjudge.net/problem/%E6%B4%9B%E8%B0%B7-P1082
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll x,y;
void exgcd(ll a,ll b)
{
if(b==0)
{
x=1;
y=0;
return;
}
exgcd(b,a%b);
ll tx=x;
x=y;
y=tx-a/b*y;
}
int main()
{
ll a,b;
cin>>a>>b;
exgcd(a,b);
x=(x%b+b)%b;
cout<<x;
return 0;
}
/忘记召唤这个步骤了,没关系哈哈
相信前面的图已经相当清楚了(拿纸自己写啊啊啊)
好的,就酱紫,挥挥~