Определить количество способов оплаты 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.
Объяснение кода листинга программы
- В первой строке объявлены пять переменных: n, n2, n5, n10, c. Переменная n содержит число, которое вводит пользователь.
- Далее пользователю предлагается ввести число N.
- Инициализируется переменная c, которая будет считать количество способов.
- Запускается цикл, который перебирает все возможные комбинации монет: а) Внешний цикл n10 перебирает количество десятирублёвых монет. б) Следующий цикл n5 перебирает количество пятирублёвых монет. в) Внутренний цикл n2 перебирает количество двухрублёвых монет. г) Если сумма n1010 + n55 + n2*2 не превышает N, то увеличивается счётчик c.
- Выводится сообщение со значением переменной c.
- Запускается цикл чтения, чтобы программа могла получить ввод пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д