RosettaCodeData/Task/Stern-Brocot-sequence/EchoLisp/stern-brocot-sequence-1.echolisp
2016-12-05 23:44:36 +01:00

9 lines
220 B
Text

;; 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)