欧几里得算法 && 扩展欧几里得

欧几里得算法(辗转相除法求最大公因数):

仅供自己记忆,如需学习请前往:欧几里得求gcd图示欧几里得算法推导

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

扩展欧几里得:

同理:扩展欧几里得学习

void Ex_gcd(int a, int b, int &x, int &y)
{
    if(b == 0)//递归出口
    {
        x = 1;
        y = 0;
        return;
    }
    int x1, y1;
    Ex_gcd(b, a%b, x1, y1);
    x = y1;
    y = x1-(a/b)*y1;
}

猜你喜欢

转载自blog.csdn.net/waterboy_cj/article/details/81190614