sicp 1.11

递归和迭代两种过程求解:

f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3), n>=3

f(n) = n, n<3

 

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

(define (f-i n)
  (define (iter a b c count)
	(if (= count 0)
	    a
		(iter b c (+ c (* 2 b) (* 3 a)) (- count 1))))
  (iter 0 1 2 n))

你可能感兴趣的:(C++,c,F#,C#)