SICP 练习1.11
2012-10-27 23:59
162 查看
题目:函数f由如下的规则定义:如果n < 3,那么f(n) = n;如果n >= 3,那么f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3)。请写一个采用递归计算过程计算f的过程。再写一个采用迭代计算过程计算f的过程。
1、采用递归计算过程计算f的过程:
2、采用迭代计算过程计算f的过程:
1、采用递归计算过程计算f的过程:
(define (func n) (if (< n 3) n (+ (func (- n 1)) (* 2 (func (- n 2))) (* 3 (func (- n 3))))))
2、采用迭代计算过程计算f的过程:
(define (func-iter a b c count max-count) (if (< max-count 3) max-count (if (> count max-count) c (func-iter b c (+ c (* 2 b) (* 3 a)) (+ count 1) max-count)))) (define (func n) (func-iter 0 1 2 3 n))
相关文章推荐
- 【SICP练习】7 练习1.11
- 【SICP练习】7 练习1.11
- 【SICP练习】21 练习1.27
- 【SICP练习】69 练习2.40
- 【SICP练习】44 练习2.3
- 【SICP练习】120 练习3.51
- 【SICP练习】134 练习3.65
- 【SICP练习】82 练习2.54
- 【SICP练习】31 练习1.37
- 【SICP练习】98 练习2.73
- 【SICP练习】143 练习3.81
- 【SICP练习】28 练习1.34
- SICP-《计算机程序的构造和解释》之习题分析与收获——练习1.29
- 【SICP练习】150 练习4.6
- SICP 练习1.17
- SICP 练习1.31 product过程
- 【SICP练习】17 练习1.23
- 【SICP练习】30 练习1.36
- 【SICP练习】55 练习2.23
- 【SICP练习】71 练习2.42