描述
小明很喜欢方程,他想让你帮他解这个方程ax+by=c,其中x,y为未知数,a,b,c为已知数。小明希望你求出一组x,y满足x,y是方程的解,并且x需要尽量的小并且大于等于零。
输入
第一行三个整数a,b,c。
输出
输出一行两个整数分别表示满足条件的x,y。如果无解输出−1。
样例输入
2 3 1
样例输出
2 -1
提示
所有数据满足:1≤a,b,c≤109。
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
for (int x = 0; ; x++)
{
//x= (c-by)/a 且 x>=0, 即y <= b/c
if (((c - a*x) / b) > (b / c))
{
printf("%d\n", -1);
break;
}
int y = (c - a*x) / b;
//小数转换整数存在丢失精度,要二次判断
if ((a*x + b*y) == c)
{
printf("%d %d\n", x, y);
break;
}
}
return 0;
}