我正在move
中寻找一种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
。两者在数学上都是正确的。但是,这个问题有约定吗?