递推函数的迭代形式与递归形式
有一函数 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))))