一道扩展欧几里得的简单题
直接套扩展欧几里得的公式就行了。
//注意题目数的范围
#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;
}