C++编程之美-数字之魅(代码清单2-16)

代码清单2-16

BigInt gcd(BigInt x, BigInt y)
{
     if(x < y) 
          return gcd(y, x);
     if(y == 0)
          return x;
     else
     {
          if(IsEven(x))
          {
               if(IsEven(y))
                    return (gcd(x >> 1, y >> 1) << 1);
               else
                    return gcd(x >> 1, y);
          }
          else
          {
               if(IsEven(y))
                    return gcd(x, y >> 1);
               else
                    return gcd(y, x - y);
          }
     }
}
发布了1210 篇原创文章 · 获赞 951 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_42528266/article/details/104027540