裴蜀定理-拓展欧几里得算法--夏令营

题目

裴蜀定理-拓展欧几里得算法--夏令营_第1张图片

知识点

1.裴蜀定理:

欧几里得算法=gcd=辗转相除法

拓展欧几里得算法=exgcd=裴蜀定理

2.证明:

裴蜀定理-拓展欧几里得算法--夏令营_第2张图片

 

3.. 代码:

int exgcd(int a, int b, int& x, int& y)
{
	if (!b)
	{
		x = 1, y = 0;
		return a;
	}
	int d = exgcd(b, a % b, y, x);
	y -= a / b * x;
	return d;
}

答案

#include 
#include
#include
using namespace std;

int exgcd(int a, int b, int& x, int& y)
{
	if (!b)
	{
		x = 1, y = 0;
		return a;
	}
	int d = exgcd(b, a % b, y, x);
	y -= a / b * x;
	return d;
}
int main()
{
	int a, b, x, y, d;
	while (scanf("%d%d", &a, &b) != EOF)
	{
		d = exgcd(a, b, x, y);
		printf("%d %d %d\n", x, y, d);
	}
	return 0;
}

你可能感兴趣的:(算法)