• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

算法学习(4):gcd和exgcd

开发技术 开发技术 2周前 (04-30) 8次浏览

GCD

inline int gcd(int a,int b) { return b == 0 ? a : gcd(b,a % b); }

EXGCD

  1. 第一种
int exgcd(int a, int b, int &x, int &y)
{
    if (b == 0)
    {
        x = 1;
        y = 0;
        return a;
    }
    int d = exgcd(b, a % b, x, y), x0 = x, y0 = y;
    x = y0;
    y = x0 - (a / b) * y0;
    return d;
}
  1. 第二种
int exgcd(int a, int b, int &x, int &y)
{
    if (b == 0)
    {
        x = 1;
        y = 0;
        return a;
    }
    int d = exgcd(b, a % b, y, x); //这里交换了x和y
    y -= (a / b) * x;
    return d;
}

程序员灯塔
转载请注明原文链接:算法学习(4):gcd和exgcd
喜欢 (0)