RosettaCodeData/Task/Stern-Brocot-sequence/EchoLisp/stern-brocot-sequence-1.l
2023-07-01 13:44:08 -04:00

9 lines
220 B
Common Lisp

;; stern (2n ) = stern (n)
;; stern(2n+1) = stern(n) + stern(n+1)
(define (stern n)
(cond
(( < n 3) 1)
((even? n) (stern (/ n 2)))
(else (let ((m (/ (1- n) 2))) (+ (stern m) (stern (1+ m)))))))
(remember 'stern)