扩展欧几里德代码:
1 int exgcd(int a,int b,int &x,int &y) 2 { 3 if(b==0) 4 { 5 x=1; 6 y=0; 7 return a; //a为gcd(a,b) 8 } 9 int r=exgcd(b,a%b,x,y); 10 int t=x; 11 x=y; 12 y=t-a/b*y; //返回解得的x和y 13 return r; 14 }
扩展欧几里德的代码得到三个有用的值,分别为a、b的最大公约数,解得的x和y的值。
它的主要应用见大佬的博客:https://www.cnblogs.com/frog112111/archive/2012/08/19/2646012.html