Даны натуральные числа 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 d< =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 d>=x then begin
d:=x;
v:=y;
end;
end; Writeln(d,' ',v);
end.
Объяснениеd это переменная, обозначающая минимальное значение x
ошибка была в строке If d<=x then begin
Если x меньше а не больше минимального, то минимальному должно присваиваться значение x
Исправленная строка If d>=x then begin