Задача по Lisp
Формулировка задачи:
В научное сообщество входят N человек. Написать программу, которая определяет, сколько существует возможных вариантов назначить его представителей на K должностей, если известно, что один человек может занимать только одну должность.
Заранее благодарю.
Решение задачи: «Задача по Lisp»
textual
Листинг программы
- (defun f (n k)
- (if (< n (+ k 1))
- 1
- (* n (f (decf n) k))))
- F
- [2]> (f 3 2)
- 3
- [3]> (f 4 2)
- 12
Объяснение кода листинга программы
[1] В функции f
определены два аргумента n
и k
.
[2] Условие функции f
проверяет, если n
меньше или равно сумме k
и 1
, то возвращается 1
.
[3] Если условие не выполняется, то возвращается результат умножения n
на результат вызова функции f
с аргументами n
и k
уменьшенным на 1
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д