题意:给出 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"); } } }