# include<stdio.h>
int ex_gcd(int a,int b,int *x,int *y){
if(!b){
*x=1,*y=0;
return a;
}
int xx,yy,ret=ex_gcd(b,a%b,&xx,&yy);
*x=yy;
*y=xx-a/b*yy;
return ret;
}
int main(){
int a,b,x,y;
while(~scanf("%d%d",&a,&b)){
printf("gcd(%d,%d)=%d\n",a,b,ex_gcd(a,b,&x,&y));
printf("%d*%d+%d*%d=%d\n",a,x,b,y,a*x+b*y);
}
return 0;
}
本文介绍了一段用C语言实现的递归欧几里得算法(ex_gcd)用于计算两个整数的最大公约数,同时展示了如何在main函数中调用该函数,并通过示例展示了gcd和其在计算线性组合中的应用。
751

被折叠的 条评论
为什么被折叠?



