此题为扩展欧几里得算法,代码如下:
#include<iostream> using namespace std; int EE(int a,int b,int& x,int& y) { if(b==0) { x=1; y=0; return a; } int r=EE(b,a%b,x,y); int temp=x; x=y; y=temp-a/b*y; return r; } int main() { int a,b,x,y,gcd; while(scanf("%d%d",&a,&b)!=EOF) { gcd=EE(a,b,x,y); //gcd为最大公约数 if(gcd==1) { while(x<0) { x=x+b/1; y=y-a/1; } cout<<x<<' '<<y<<endl; } else cout<<"sorry"<<endl; } return 0; }