扩展欧几里得定理:对于两个不全为0的整数a、b,必存在一组解x,y,使得ax+by==gcd(a,b)
#include <bits/stdc++.h>
using namespace std;
#define ll __int64
void exgcd( ll a, ll b, ll &x, ll &y)
{
if(b== 0)
{
x= 1;
y= 0;
return;
}
exgcd(b,a% b,x,y);
ll t= x;
x=y;
y=t-a/b*y;
return;
}
int main() {
ll a, b, x, y;
cin>>a>>b;
exgcd(a, b, x, y);
printf("%I64d %I64d\n", x, y);
return 0;
}

本文介绍了一种用于求解最大公约数的扩展欧几里得算法,并提供了详细的C++实现代码。该算法能够找到两个整数a和b的最大公约数以及一组解x和y,使得ax+by等于它们的最大公约数。
1299

被折叠的 条评论
为什么被折叠?



