扩展欧几里得算法
-
核心思想:裴蜀定理 :
-
欧几里得算法: 辗转相除法求最大公约数
-
-
传入参数(int a,int b,int &x,int &y)
-
递归(int b,int a%b,int y,int x) xy换位置 方便计算(推公式)
-
#include<iostream>#include<algorithm>using namespace std;const int N = 100010;int exgcd(int a,int b,int &x,int &y){if(!b) //b == 0 说明最深层 有且仅有一种xy取值{x = 1 ,y = 0;return a;}else{int d = exgcd(b, a % b , y , x); //递归y -= a/b * x; //由公式推出来 y的值return d; //return exgcd();}}int main(){int n;cin>>n;while(n--){int a,b,x,y;scanf("%d %d", &a, &b);exgcd(a,b,x,y);printf("%d %d\n", x,y);}}
-