Common Lisp递归

1)斐波那契数列

求斐波那契数列第n+1个数

(defun fib (n)
       (cond ((equal n 0) 1)
         ((equal n 1) 1)
         (t (+ (fib (- n 1))
               (fib (- n 2))))))

求斐波那契数列前第n+1个数的和

(defun add-fib (n)
       (do ((i 0 (1+ i)))
           ((>= i n))
         (format t "~A~%" (fib i))))


2)另一种没有循环体的求斐波那契数列和的函数

 (defun fib2 (x)
       (do ((n 0 (1+ n))
        (cur 0 next)
        (next 1 (+ cur next)))
           ((= x n) cur)))





你可能感兴趣的:(Common Lisp递归)