算法----扩展的欧几里得算法
内容:就是有两个数A,B 能找到一组数(x,y)使得Ax+B*y=gcd(A,B)
一、代码
#include<iostream>
#include<string>
#include<stdio.h>
#include<string.h>
using namespace std;
int exgcd(int a,int b,int &x,int &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
int r=exgcd(b,a%b,x,y);
int t=x;
x=y;
y=t-(a/b)*x;
return r;
}
int main(int argc,char *argv)
{
int a,b,x,y;
cout<<"please input the first data A"<<endl;
cin>>a;
cout<<"please input the first data B"<<endl;
cin>>b;
cout<<exgcd(a,b,x,y);
cout<<" "<<x<<" "<<y<<endl;
}