Даны естественные числа a, b, c. Если уравнение ax+by=c имеет решения
Даны естественные числа a, b, c. Если уравнение ax+by=c имеет решения в целых числах, то выберите то решение, в котором число x имеет наименьшее неотрицательное значение и выведите это решение (два числа x и y через один пробел).
Var
a,b,c,x,y,k,l,j,v,d:integer;
Begin
read(a);
read(b);
read(c);
k:=0-c;
d:=1;
For x:=1 to c do
For y:=k to c do
begin
If a*x+b*y=c then
If dlt;=x then begin
d:=x;
v:=y;
end;
end; Writeln(d,' ',v);
end.
Выводит не наименьшее, а наибольшее, помогите пожалуйста исправить, праграмма написана на паскале если что даю оч много раутов
Исправленный код программы
Var
a,b,c,x,y,k,l,j,v,d:integer;
Begin
read(a);
read(b);
read(c);
k:=0-c;
d:=1;
For x:=1 to c do
For y:=k to c do
begin
If a*x+b*y=c then
If dgt;=x then begin
d:=x;
v:=y;
end;
end; Writeln(d,' ',v);
end.
Объяснение
d это переменная, обозначающая малое значение x
ошибка была в строке If dlt;=x then begin
Если x меньше а не больше малого, то минимальному обязано присваиваться значение x
Исправленная строка If dgt;=x then begin
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.