您的位置:首页 > 其它

HDU 2669 Romantic[扩展欧几里德]

2012-11-01 23:05 302 查看
题意: 输入两个非负整数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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: