Есть вопросы?

Здесь Вы можете найти ответы на многие вопросы или задать свой вопрос!

ТОЛЬКО C++ Диофантово уравнение
Даны натуральные числа a, b, c. Если уравнение ax+by=c имеет решения в целых числах, то выберите то решение, в котором число x имеет наименьшее неотрицательное значение, и выведите это решение (два числа x и y через один пробел). Если решения не существует, то выведите −1.

Входные данные

Входные данные — натуральные числа a, b и c. Числа заданы на одной строке через пробел и не превышают 109.

Выходные данные

Выведите ответ на задачу.

Примеры
Ввод
1 2 3
2 2 2
Вывод
1 1
0 1

Вот мой код, но пишет "неверный ответ":
#include
#include
#include
using namespace std;

int gcd_ext(int a, int b, int& x, int& y) {
if (b == 0) {
x = 1;
y = 0;
return a;
}
int d = gcd_ext(b, a % b, x, y);
x -= (a / b) * y;
swap(x, y);
return d;
}

int main() {
int a, b,c, x,y;
cin>>a>>b>>c;
int d=gcd_ext(a, b,x, y);
if(c%d==0){
x=c/d*x+b/d;
y=c/d*y-a/d;
int t=(c/d*x)/(b/d);
if(x==0){
cout< }else {
cout< }
}else{
cout<<1*(-1);
}
}

Другие вопросы по: Информатика

Знаешь правильный ответ?
ТОЛЬКО C++ Диофантово уравнение Даны натуральные числа a, b, c. Если уравнение ax+by=c имеет решения...

Популярные вопросы