Соглашение о расширенном евклидовом алгоритме [In C] - PullRequest
0 голосов
/ 31 октября 2018

Я искал алгоритм Extended Euclidean в C. Я нашел следующий кусок кода:

int gcdExtended(int a, int b, int *x, int *y) 
{ 
    if (a == 0) 
    { 
        *x = 0; 
        *y = 1; 
        return b; 
    } 
    int x1, y1;
    int gcd = gcdExtended(b%a, a, &x1, &y1); 
    *x = y1 - (b/a) * x1; 
    *y = x1;
    return gcd; 
}

поэтому для gcdExtended(0,0) он вернет: x=0 и y=1. Но я видел некоторые другие версии алгоритма, которые возвращают x=0 и y=0. Оба математически верны. Но есть ли соглашение по этому вопросу?

...