Определить количество способов оплаты 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.
- Запускается цикл чтения, чтобы программа могла получить ввод пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д