说明了对任何整数a、b和它们的最大公约数d
ax + by = m 有整数解时当且仅当m是d的倍数。
特别来说,方程 ax+by=1 有整数解当且仅当整数a和b互素。
int exgcd(int a, int b, int &x, int &y)
{
if(b == 0)
{//推理1,终止条件
x = 1;
y = 0;
return a;
}
int r = exgcd(b, a%b, x, y);
//先得到更底层的x2,y2,再根据计算好的x2,y2计算x1,y1。
//推理2,递推关系
int t = y;
y = x - (a/b) * y;
x = t;
return r;
}