Пожалуйста, помогите!!!Мне, необходимо срочно сдать работу!!!(PASCAL ABC.NET) Дана...

0 голосов
33 просмотров

Пожалуйста, помогите!!!Мне, необходимо срочно сдать работу!!!(PASCAL ABC.NET)
Дана n-сумма (1530) в рублях.Вывести на экран линиями количество купюр которыми можно представить данную сумму.Итого должно быть 5 номиналов.
Пояснения:(Div; Mod; k-количество; n-сумма).Также, необходимо сделать, как можно меньше делений!


Информатика | 33 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Какое-то запутанное условие.
Решение "в лоб", без оптимизаций:

Procedure Razmen(a : Integer);
Begin
  If a>=500 then
  Begin
    Writeln('500 - ',a div 500);
    Razmen(a-(a div 500)*500);
  end
  else
    If a>=100 then
    Begin
      Writeln('100 - ',a div 100);
      Razmen(a-(a div 100)*100);
    end
    else
      If a>=50 then
      Begin
        Writeln('50 - ',a div 50);
        Razmen(a-(a div 50)*50);
      end
      else
        If a>=10 then
        Begin
          Writeln('10 - ',a div 10);
          Razmen(a-(a div 10)*10);
        end
        else
          If a>=5 then
          Begin
            Writeln('5 - ',a div 5);
            Razmen(a-(a div 5)*5);
          end
          else Writeln('1 - ',a);
end;
Begin
  Razmen(1530);
end.

(5.1k баллов)