• Вопрос по информатике:

    Даны натуральные числа 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.

    Выводит не наименьшее, а наибольшее, помогите пожалуйста исправить, праграмма написана на паскале если что даю оч много балов

    • Автор:

      ruperto
  • теперь выводит неправильный результат
    • Отвечал:

      nylahbender
    А какие данные вы вводили?
    • Отвечал:

      max6eyo
    Исправленный код программы

    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

    • Отвечал:

      everettbxwk

    Ответов нет, но ты это испарвиш!

Еще 4 ненужных тебе вопроса, но это важно для поиска