19 lines
415 B
Clojure
19 lines
415 B
Clojure
;; max is which fib number you'd like computed (0th, 1st, 2nd, etc.)
|
|
;; n is which fib number you're on for this call (0th, 1st, 2nd, etc.)
|
|
;; j is the nth fib number (ex. when n = 5, j = 5)
|
|
;; i is the nth - 1 fib number
|
|
(defn- fib-iter
|
|
[max n i j]
|
|
(if (= n max)
|
|
j
|
|
(recur max
|
|
(inc n)
|
|
j
|
|
(+ i j))))
|
|
|
|
(defn fib
|
|
[max]
|
|
(if (< max 2)
|
|
max
|
|
(fib-iter max 1 0N 1N)))
|