文責: | @ayato_p |
---|
n<3 のとき
\(f(n) = n\)
\(n\geq3\) のとき
\(f(n) = f(n-1) + 2f(n-2) + 3f(n-3)\)
再帰的プロセス
(define (f n)
(if (< n 3)
n
(+ (f (- n 1))
(* 2 (f (- n 2)))
(* 3 (f (- n 3))))))
反復的プロセス
(define (f n)
(define (iter a b c n)
(cond
[(< n 0) n]
[(zero? n) a]
[else (iter b c (+ c (* 2 b) (* 3 a)) (- n 1))]))
(iter 0 1 2 n))