//求解ax+my=1 int exGCD(int a,int b,int &x,int &y) { if(b==0) { x=1; y=0; return a; } int g=exGCD(b,a%b,x,y); int tmp=x; x=y; y=tmp-a/b*y; return g; } int gcd(int a,int b) { if(b==0) return a; return gcd(b,a%b); } #include<iostream> #include<algorithm> using namespace std; int main() { int a=20,b=12; cout << __gcd(a,b); //algorithm 下的函数 return 0; }文章来源: gcd和扩展gcd