本文共 608 字,大约阅读时间需要 2 分钟。
对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整
数对 x,y ,使得 gcd(a,b)=ax+by。 代码实现如下:#includeusing namespace std;typedef long long LL;void exgcd(int a,int b,int &x,int &y){ if(b==0) { x=1; y=0; return ; } exgcd(b,a%b,x,y); int tmp=x;//从这开始是关键啊 x=y; y=tmp-(a/b)*y;}LL gcd(LL m,LL n){ if(n==0) return m; return gcd(n,m%n);}int main(){ int a,b,c,x,y; while(cin>>a>>b>>c) { int d=gcd(a,b); a/=d; b/=d; c/=d; int x,y; exgcd(a,b,x,y); x*=c; y*=c; cout< <<" "< <
转载地址:http://bjwal.baihongyu.com/