首页 > 代码库 > 递推函数的迭代形式与递归形式

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

有一函数 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))))

 

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