扩展欧几里德算法

自己写出来的代码,

求方程aX+bY=c的任意10组解。

代码如下;

#include <cstdio>
void gcd(int a, int b, int &x, int &y, int &d)
{
    if(b==0) {d = a; x = 1; y = 0;}
    else {gcd(b,a%b,y,x,d); y -= (a/b)*x;}
}
int main ()
{
    int a, b, c;
    while(scanf("%d%d%d",&a,&b,&c)==3)
    {
        int x, y, g;
        gcd(a,b,x,y,g);
        if(c%g) printf("NO ANSWER\n");
        x *= c/g;
        y *= c/g;
        int bb = b/g, aa = a/g;
        for(int i = 0; i < 10; i++)
            printf("(%d,%d)\n",x+i*bb,y-i*aa);
    }
    return 0;
}


你可能感兴趣的:(扩展欧几里德算法)