Рекурсивная функция от одного числового аргумента N, считающая произведение чётных натуральных чисел от 2 до N - Lisp
Формулировка задачи:
Написать рекурсивную функцию от одного числового аргумента N, считавшую произведение чётных натуральных чисел от 2 до N... Не совсем разобрался ... как факториал вычислить функция вроде и есть, но как переделать таким образом чтобы брали только чётные числа?
(Defun f (n) (cond ((= n 0) 1) (t (* n (f (- n 1))))))
Решение задачи: «Рекурсивная функция от одного числового аргумента N, считающая произведение чётных натуральных чисел от 2 до N»
textual
Листинг программы
(define (!!-even n) (define (factorial n acc) (if (= n 1) acc (factorial (sub1 n) (* n acc)))) (let ((n (if (even? n) n (sub1 n)))) (* (expt 2 (/ n 2)) (factorial (/ n 2) 1)))) (map !!-even '(5 6 7 12)) ;'(8 48 48 46080)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д