Рекурсивная функция от одного числового аргумента 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)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.5 из 5
Похожие ответы