标签:amp code 扩展gcd ios printf class 扩展 cin std
#include <cstdio>
#include <iostream>
using namespace std;
/*扩展gcd证明
由于当d = gcd(a,b)时;
d = d1 = gcd(b,a%b);
d1 = b1x1 + a%by1;
d = ax+by = b1x1+a%by1。又由于a%b = a - a%b*b;
上式变形能够有
b1x1 + (a-b*a/b)*y1 = a*y1 + b*(x1-a/b*y1);
也就是是说ax+by = a*y1 + b*(x1-a/b*y1);
所以当x=y1,y = x1-a/b*y1时。能够满足有d=ax+by;
*/
int fun(int a,int b,int d,int &x,int &y){
if(b == 0){
x = 1;
y = 0;
return a;
}
else{
d = fun(b,a%b,d,x,y);
int t;
t = x;
x = y;
y = t-a/b*y;
return d;
}
}
int main(){
int a,b,d;
cin >>a >> b >> d;
int x,y;
fun(a,b,d,x,y);
printf("%d %d\n",x,y);
return 0;
}标签:amp code 扩展gcd ios printf class 扩展 cin std
原文地址:http://www.cnblogs.com/liguangsunls/p/6848909.html