1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(defun fib-fast (n) (if (<= n 1) n (let* ((n1 1) (n2 1) (tmp) (c 2)) (while (< c n) (setq tmp (+ n1 n2)) (setq n1 n2) (setq n2 tmp) (setq c (+ 1 c))) n2))) (print (fib-fast 30))