SICP题目不容易,可以很大程度提高编程能力
递归
做迭代部分的时候一时没有理解的 a <- a + b, b <- a。
这里也是同样
在下一轮迭代前,参数应该为a <- a + 2 * b + 3 * c,b <- a, c <- b,知道这个道理就不难做了。
递归
(define (f n)
(if (< n 3) n
(+ (f (- n 1)) (* 2 (f (- n 2))) (* 3 (f (- n 3)))))
)
做迭代部分的时候一时没有理解的 a <- a + b, b <- a。
这里也是同样
在下一轮迭代前,参数应该为a <- a + 2 * b + 3 * c,b <- a, c <- b,知道这个道理就不难做了。
(define (f n)
(f-iter 2 1 0 n)
)
(define (f-iter a b c count)
(if (< count 3) a
(f-iter (+ a (* 2 b) (* 3 c)) a b (- count 1)))
)