`
t0uch
  • 浏览: 58280 次
  • 性别: 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)))
  )

分享到:
评论

相关推荐

    n后问题--非递归迭代回溯.rar

    n后问题--非递归迭代回溯.rar n后问题--非递归迭代回溯.rar n后问题--非递归迭代回溯.rar n后问题--非递归迭代回溯.rar n后问题--非递归迭代回溯.rar n后问题--非递归迭代回溯.rar

    n后问题---递归回溯法 n后问题---递归回溯法

    n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---递归回溯法 n后问题---...

    递归与迭代算法及其在JAVA语言中的应用.pdf

    在Java中实现递归和迭代算法时,需要特别注意递归算法的终止条件,以防止栈溢出错误。同时,迭代算法中要注意循环变量的控制,确保循环能够正确退出。 此外,递归和迭代的效率问题也是程序员需要关注的重点。递归...

    0/1背包问题的两种解法--存储优化的递归和自下而上的递归(迭代法)

    递归公式通常为`dp[i][j] = max(dp[i-1][j], dp[i-1][j-weight[i]] + value[i])`,其中`weight[i]`和`value[i]`分别是第`i`个物品的重量和价值。这种方法虽然有效,但递归可能会导致大量的函数调用,效率较低。 2. ...

    编译原理课设:属性计算-递归下降语法分析器

    设计递归下降翻译器,完成语法分析和中间代码翻译。 输入:一个完整的源程序 输出:与输入对应的一个语法树、四元式序列 2、资源 课设报告word 课设源码 3、开发环境 编程语言:C++ IDE:VS 2019

    第12讲 递归和迭代.pptx

    枚举算法,递归与分治策略,递归与迭代的思想、求最大值最小值、线性查找、二分查找与冒泡排序以及选择与交换排序、插入和希尔排序。本课程除了强调经典的算法理论和模型,亦兼顾编程实践能力。力图使得学员面对复杂...

    递归和迭代1

    根据给定文件的信息,我们可以深入探讨递归与迭代这两个重要的编程概念。递归与迭代都是解决计算机科学领域问题的重要方法,它们在算法设计、数据结构处理等方面有着广泛的应用。 ### 一、递归 #### 1.1 什么是...

    Java之递归和迭代用法

    在编程领域,递归和迭代是两种常见的解决问题的方法,它们在Java编程中有着广泛的应用。本文将深入探讨这两种方法,并通过实例分析它们的工作原理、优缺点以及如何在实际编程中选择合适的方式。 首先,让我们理解...

    基础算法-递归-杨鑫20191010.pptx

    基础算法-递归-杨鑫20191010.pptx,基础算法-递归-杨鑫20191010.pptx,基础算法-递归-杨鑫20191010.pptx

    oracle递归、迭代

    ### Oracle中的递归查询详解 #### 一、引言 在数据库管理中,处理具有层次结构的数据是一项常见的任务。例如,在组织结构、产品分类或文件系统等场景...希望本文能帮助读者更好地理解和应用Oracle中的递归查询技术。

    SPT-05-递归程序设计.pdf

    - 递归到非递归的转换,对于某些问题,递归解法可能不是最优解,需要将递归解法转换为迭代解法来提高效率。 菲波那切数列的递归实现: 菲波那切数列通过递归实现,数列中的每个数都是前两个数的和。递归实现简单...

    Java程序设计中递归与迭代的比较.pdf

    在Java程序设计中,递归和迭代是两种常见的解决问题的方法。递归是函数或方法直接或间接调用自身,将复杂问题分解为相似的子问题来解决,而迭代则使用循环结构逐步推进问题的解决。 1. 递归: - **递归公式**:...

    myPrjTreeWidget-递归和非递归算法.rar

    在IT行业中,尤其是在软件开发领域,递归和非递归算法是解决问题的两种常见方法,特别是在处理层次结构数据,如树形结构时。QT库,一个C++的跨平台应用程序开发框架,提供了丰富的UI组件,其中包括QTreeWidget,用于...

    二叉树的操作--递归非递归遍历、结点个数、树深度

    遍历递归的先中後序, 非递归的先中後序, 计算出深度 结点数 /* 运行结果: ------------------------ 请先序输入二叉树(如:ab三个空格表示a为根节点,b为左子树的二叉树) ab c 先序递归遍历二叉树: a b c 先序...

    c++代码-递归-快速排序

    c++代码-递归-快速排序

    20221011-1-递归与循环.py

    20221011-1-递归与循环.py

    大师叫你不再害怕 ----递归算法

    递归结构和递归函数经常相伴出现,许多对递归结构的常见操作最有效的方法就是使用递归函数。 举个经典的例子,斐波那契数列就是一个递归定义。第N个斐波那契数是前两个斐波那契数(第N-1个和第N-2个)的和。特殊...

    C语言第七章-递归完整版资料.ppt

    在C语言中,所有函数都可以使用递归,数学上的迭代函数都可以用递归进行编程。 递归函数的写法通常有两种形式:一种是直接递归,即函数直接调用自己;另一种是间接递归,即函数通过其他函数调用自己。 递归函数的...

    DSAinC++3-遍历迭代与递归1

    在计算机科学中,遍历、迭代和递归是三种常见的解决问题的方法,特别是在数据处理和算法设计中。遍历是访问集合所有元素的过程,通常按照一定的顺序,确保每个元素仅被访问一次。这种操作在处理数组、链表、树和图等...

Global site tag (gtag.js) - Google Analytics