HDU 2669 Romantic[扩展欧几里德]
题意: 输入两个非负整数a, b ,找到非负的整数 X , Y 使其满足 X*a + Y*b = 1.
#include <stdio.h> #include <string.h> void extend_gcd(int a, int b, int& d, int& x, int& y) { if(!b) { d = a; x = 1; y = 0; } else { extend_gcd(b, a%b, d, y, x); y -= x*(a/b); } } int main() { int a, b, x, y, d; while(scanf("%d %d",&a, &b)!=EOF) { extend_gcd(a, b, d, x, y); if(d != 1) { printf("sorry\n"); } else { while(x < 0) { x += b; y -= a; } printf("%d %d\n",x,y); } } return 0; }