写点什么

SICP 习题解答 1.11

用户头像
十元
关注
发布于: 2021 年 03 月 09 日

Exercise 1.11.  A function f is defined by the rule that f(n) = n if n<3 and f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3) if n> 3. Write a procedure that computes f by means of a recursive process. Write a procedure that computes f by means of an iterative process.


my solution:


recursive process

(define (f n)  (if (< n 3)    n    (+ (f (- n 1)) (* 2 (f (- n 2))) (* 3 (f (- n 3))))))
复制代码


iterative process

#lang sicp
(define (f n) (define (f-iter s m l i) (if (= i n) l (f-iter m l (+ l (* 2 m) (* 3 s)) (+ i 1)))) (if (< n 3) n (f-iter 0 1 2 2)))
复制代码


多写了一对括号,检查半天才查出来,真要命。

error message 是准确的,为什么不盯着 error message 想呢,就算不能马上想起来,也比乱找好。

every mistake is a lesson and every lesson will make you better.

用户头像

十元

关注

还未添加个人签名 2018.09.26 加入

这人眼高手低 夸夸其谈

评论

发布
暂无评论
SICP 习题解答 1.11