bool isEven_(int n)//是否是偶数
{
return (n&1)==0;
}
int gcd(int x, int y)//注意递归的基准情况和x,y同为偶数的情况
{
if(x<y)
{
return gcd(y,x);
}
if(y==0)
return x;
//以上两步为递归算法中的基准情况!!
if(isEven_(x)&&isEven_(y))
{
return (gcd(x>>1,y>>1))<<1;//x>>1 x/2
}else if(isEven_(x)&&!isEven_(y))
{
return gcd(x>>1,y);
}else if(!isEven_(x)&&isEven_(y))
{
return gcd(x,y>>1);
}else{
return gcd(y,x-y);
}
}
最大公约数
最新推荐文章于 2022-07-10 20:23:23 发布