扩展欧几里德算法
自己写出来的代码,
求方程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;
}
浙公网安备 33010602011771号