Даны натуральные числа 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. выводит не наименьшее, а наибольшее, исправить, праграмма написана на паскале если что оч много
173
322
Ответы на вопрос:
Исправленный код программы
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
Популярно: Информатика
-
muckanvicktoria21.10.2022 00:39
-
mfaig12.04.2023 04:40
-
nastyakisa220.04.2023 19:05
-
12345653210.02.2023 05:22
-
Ris123420.02.2022 06:10
-
Sagi51115.05.2020 04:36
-
pavellolpanov08.08.2021 02:59
-
пацанка612.02.2020 09:13
-
liza2005yakovl11.10.2021 07:09
-
Alenasol119.09.2021 04:29