`
t0uch
  • 浏览: 59399 次
  • 性别: Icon_minigender_1
  • 来自: 柳州
社区版块
存档分类
最新评论

1.11 练习答案-递归和迭代

    博客分类:
  • SICP
阅读更多
SICP题目不容易,可以很大程度提高编程能力

递归
(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)))
  )

分享到:
评论

相关推荐

    C++大学教程

    自测练习答案----------------------------------------------------------33 练习------------------------------------------------------------------34 第2章 控制结构----------------------------------...

    C++大学教程,一本适合初学者的入门教材(part1)

    自测练习答案 练习 第2章 控制结构 2.1 简介 2.2 算法 2.3 伪代码 2.4 控制结构 2.5 if选择结构 2.6 if/e1se选择结构 2.7 while重复结构 2.8 构造算法:实例研究1(计数器控制重复) 2.9 构造算法与自上而下...

    C++大学教程,一本适合初学者的入门教材(part2)

    自测练习答案 练习 第2章 控制结构 2.1 简介 2.2 算法 2.3 伪代码 2.4 控制结构 2.5 if选择结构 2.6 if/e1se选择结构 2.7 while重复结构 2.8 构造算法:实例研究1(计数器控制重复) 2.9 构造算法与自上而下...

    Visual.Basic.6大学教程.pdf

    1.11 关于Visual Basic和本书的一般性提示 7 1.12 本书概览 7 小结 12 自测练习 14 自测练习答案 15 练习 15 第2章 集成开发环境 17 2.1 简介 17 2.2 集成开发环境综述 17 2.3 Project窗口 19 2.4 工具箱 20 2.5 ...

    Leetcode答案(c++版)

    - 使用迭代或递归方法,每次处理两个节点。 - 对于迭代方法,需要额外处理指针连接问题;对于递归方法,需要正确处理边界条件。 **1.6 Remove Duplicates from Sorted List II (82)** - **问题描述**:给定一个...

    c语言经典算法(来自bccn)

    这是一种经典的组合数表示形式,每行代表了组合数的一系列值,算法设计上可能涉及到递推或迭代的方法。 #### 2.12 字母矩形 可能涉及到字符的循环输出,用于绘制由字母组成的矩形图案,需要掌握字符编码和输出控制...

Global site tag (gtag.js) - Google Analytics