一道扩展欧几里得的简单题
直接套扩展欧几里得的公式就行了。
//注意题目数的范围
#include<iostream>
#include<cmath>
using namespace std;
void exgcd(long long a,long long b,long long&d,long long&x,long long&y)
{
if(b==0)
{
x=1;y=0;d=a;
}
else
{
exgcd(b,a%b,d,y,x);
y=y-(a/b)*x;
}
}
int main()
{
long long x1,k,a,b,d,x,y,k1;
int t;
cin>>t;
while(t--)
{
cin>>x1>>k;
a=x1/k;b=ceil((double)x1/k); //向上取整时必需先化为double型
exgcd(a,b,d,x,y);
k1=x1/d;
x=x*k1;y=y*k1;
cout<<x<<" "<<y<<endl;
}
return 0;
}
本文介绍了一道关于扩展欧几里得算法的应用题目,通过具体的代码实现展示了如何求解最大公约数及其贝祖等式的系数。适用于解决数学与计算机科学中与最大公约数相关的实际问题。
1581

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



