int gcd(int a,int b)
{
if(b==0)
return a;
else
return gcd(b,a%b);
}
辗转相除法的基本原理就是gcd(x,y)=gcd(x,y-x);
如果想要进一步提高gcd的效率,可以通过不断去除因子2来降低常数。
1,若x,y均为偶数,则gcd(x,y)=2*gcd(x/2.y/2);
2 ,若x为偶数,y为奇数,则gcd(x,y)=gcd(x/2,y);
3.若x为奇数,y为偶数,则gcd(x,y)=gcd(x,y/2);
4.若x,y均为奇数,则gcd(x,y)=gcd(x-y,y);
本文介绍了一种高效求解两个整数最大公约数(GCD)的方法——辗转相除法,并提供了详细的算法实现步骤及代码示例。通过递归调用自身,辗转相除法能够快速找到两个数的最大公约数。此外,文章还讨论了如何通过优化因子2的处理来进一步提升算法效率。
9943

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



