|
(defun fibonacci (n)
|
|
(let ( (vec) (i) (j) (k) )
|
|
(if (< n 2) n
|
|
(progn
|
|
(setq vec (make-vector (+ n 1) 0) i 0 j 1 k 2)
|
|
(setf (aref vec 1) 1)
|
|
(while (<= k n)
|
|
(setf (aref vec k) (+ (elt vec i) (elt vec j) ))
|
|
(setq i (+ 1 i) j (+ 1 j) k (+ 1 k) ))
|
|
(elt vec n) ))))
|