欧几里德算法:求最大公因数
int _euclid(int x,int y)
{
if(y==0)return x;
else return _euclid(y,x%y);
}======================================================================================================================================
扩展欧几里德算法:求解一组整数x,y,使得a*x+b*y = Gcd(a,b)
int _gcd(int a,int b,int &x,int &y)
{
if(b==0)
{
x=1;y=0;return a;
}
int r=_gcd(b,a%b,y,x);
y-=a/b*x;
return r;
}//r为最大公因数,x y的值根据需要自行调整
======================================================================================================================================

本文介绍了经典的欧几里德算法及其扩展版本用于求解两个整数的最大公因数(GCD)。首先通过递归方式实现基本的欧几里德算法,接着详细解释了扩展欧几里德算法如何找到使得a*x+b*y=Gcd(a,b)成立的整数x和y。
3805

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



