递推函数的迭代形式与递归形式

有一函数 f() 遵守以下规则: 当 n < 3 时, f(n) = n 当 n >= 3 时, f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3)

用迭代和递归的形式分别写出 计算 f(n) 的过程。

递归形式:

(define (f n)
  (if (< n 3)
     n
     (+ (f (- n 1))
         (* 2 (f (- n 2)))
         (* 3 (f (- n 3))))))

迭代形式:

(define (f n)
  (if (< n 3)
     n
     (f-it 2 1 0 n)))

(define (f-it first second third count)
  (if (< count 3)
     (+ first second third)
     (f-it first (* 2 second) (* 3 third) (- count 1))))

 

posted @ 2015-02-02 00:14  wu_overflow  阅读(268)  评论(0编辑  收藏  举报