递归 和 迭代

#lang scheme
(define (func n)
  (func-iter 0 1 2 n 0))
(define (func-iter a b c n i)
  (if (< i n) (func-iter b c (+ c (* 2 b) (* 3 a)) n (+ i 1)) a))
(define (func2 n)
  (cond ((< n 3) n)
        (else (+ (func2 (- n 1)) (* (func2 (- n 2)) 2) (* (func2 (- n 3)) 3)))))

这个是看《SICP》来的,递归很牛逼,很符合思维,但是简单易懂的迭代有时候效率更高。

posted @ 2011-02-02 21:45  CuiXS  阅读(213)  评论(0)    收藏  举报