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