题意:给出 a ,b,求x,y,x>0,使得ax+by=1
思路:一个拓展欧几里得模板题,因为没有学过。。只能推出a,b互质时才有解、
感想:是比较简单的数学题、模板、
代码:
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f;
#define mod 1000000007
long long GCD(long long a,long long b,long long &x,long long &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
int l,r;
l=GCD(b,a%b,x,y);
r=x;
x=y;
y=r-a/b*y;
return l;
}
int main()
{
long long a,b,x,y;
while(~scanf("%lld%lld",&a,&b))
{
if(GCD(a,b,x,y)==1)
{
while(x<0)
{
x=x+b;
y=y-a;
}
printf("%lld %lld\n",x,y);
}
else
{
printf("sorry\n");
}
}
}