0votos

Doble factorial n!! en Clojure

por AverageUser hace 1 año

La "N" al final del numero señala que es de tipo BigInt .

Algoritmo del doble factorial de un numero en lenguaje c Si n es par entonces se multiplican los pares hasta el 2 es decir 8!!=8x6x4x2 Si n es impar entonces se multiplican todos los impares hasta el 1 ejemplo 7!!=7x5x3x1 Si n =0 o n=-1 el resultado es 1 es decir 0!!=1 -1!!=1

1
2
3
4
5
6
7
8
9
(defn DobleFac [n] 
  (cond (or (= 0 n) (= n -1))  1 
        (odd? n)      (apply * (filter odd? (range 1N (inc n)))) 
        :else         (apply * (filter even? (range 1N (inc n)))))) 
 
;; (DobleFac 8) => 384N 
;; (DobleFac 7) => 105N 
;; (DobleFac 100) => 
;; 34243224702511976248246432895208185975118675053719198827915654463488000000000000N 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.