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 ビュー70000 +

おすすめ

転載: blog.csdn.net/weixin_42528266/article/details/104027540