HDU 2669 Romantic

来源:互联网 发布:加工中心编程简单实例 编辑:程序博客网 时间:2024/06/02 02:14

题意:找出最小的非负整数X,使之满足式子X*a + Y*b = 1。

思路:简单的扩展欧几里德。

#include<stdio.h>int exgcd(int a,int b,int &x,int &y) {int i,j;if(b==0){x=1;y=0;return a;}i=exgcd(b,a%b,x,y);j=x;x=y;y=j-a/b*y;return i;}int main(){int a,b,x,y,r;while(scanf("%d %d",&a,&b)!=EOF){    r=exgcd(a,b,x,y);if(r==1){while(x<0){x+=b;y-=a;}printf("%d %d\n",x,y);}elseprintf("sorry\n");}return 0;}