Определить количество способов оплаты N рублей с помощью монет достоинством 1, 2, 5, 10 рублей - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Дано натуральное число N (N<100). Определить количество способов оплаты N рублей с помощью монет достоинством 1, 2, 5, 10 рублей. (Использовать цикл в цикле, желательно, как можно проще).

Решение задачи: «Определить количество способов оплаты N рублей с помощью монет достоинством 1, 2, 5, 10 рублей»

textual
Листинг программы
var n, n2, n5, n10, c: integer;
begin
  write('n = ');
  readln(n);
  c := 0;
  for n10 := 0 to n div 10 do
    for n5 := 0 to n div 5 do
      for n2 := 0 to n div 2 do
        if n - 10 * n10 - 5 * n5 - 2 * n2 >= 0
          then inc(c);
  writeln('Способов: ', c);
  readln
end.

Объяснение кода листинга программы

  1. В первой строке объявлены пять переменных: n, n2, n5, n10, c. Переменная n содержит число, которое вводит пользователь.
  2. Далее пользователю предлагается ввести число N.
  3. Инициализируется переменная c, которая будет считать количество способов.
  4. Запускается цикл, который перебирает все возможные комбинации монет: а) Внешний цикл n10 перебирает количество десятирублёвых монет. б) Следующий цикл n5 перебирает количество пятирублёвых монет. в) Внутренний цикл n2 перебирает количество двухрублёвых монет. г) Если сумма n1010 + n55 + n2*2 не превышает N, то увеличивается счётчик c.
  5. Выводится сообщение со значением переменной c.
  6. Запускается цикл чтения, чтобы программа могла получить ввод пользователя.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5
Похожие ответы