Code:
#include<bits/stdc++.h>
using namespace std;
int gcd(int a, int b) //欧几里得求最大公约数
{
if(b == 0)
return a;
else
return gcd(b, a%b);
}
void ex_gcd(int a, int b, int& d, int& x, int& y) //扩展欧几里得求贝祖等式
{
if(!b)
{
d = a; x = 1; y = 0;
}
else
{
ex_gcd(b, a%b, d, y, x);
y -= x*(a/b);
}
}
int main()
{
int a, b;
cin >> a >> b;
cout << gcd(a, b) << endl;
int x, y, d;
ex_gcd(a, b, d, x, y);
cout << x << " " << y << endl;
return 0;
}
本文介绍了如何使用欧几里得算法计算两个整数的最大公约数,并进一步利用扩展欧几里得算法求解贝祖等式的整数解。通过具体的代码示例展示了算法的具体实现。
653

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



