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

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

 

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