Common Lisp 再帰 by pgf2 > (defun fib(n) (cond ((= n 0) 0) ((= n 1) 1) (t (+ (fib (- n 1)) (fib (- n 2)))))) 繰り返し by pgf2 > (defun fib(n) (cond ((= n 0) 0) ((= n 1) 1) (t (let ((result 0) (x 0) (y 1)) (dotimes (i (- n 1) result) (setq result (+ x y)) (setq x y) (setq y result)))))) 一般項 by pgf2 > (defun fib(n) (truncate (* (/ 1 (sqrt 5)) (- (expt (/ (+ 1 (sqrt 5)) 2) n) (expt (/ (- 1 (sqrt 5)) 2) n))