2024-06-25 06:39:46 发布
网友
不知道是否有人能给我指出一个好的递归教程。我对它有点生疏,因为我是在第一学期的数据结构课上学到的。想复习一下我的递归…有什么帮助吗?在
考虑this。在
更严重的是
递归是一种解决问题的方法,它有一个明确定义的基本情况(或者说,我在这里保持简单)
例如,常被引用的阶乘问题就是一个很好的问题。在
阶乘是做什么的?让我们看看一些例子:
factorial(0) = 1 factorial(1) = 1 factorial(2) = 2 factorial(3) = 6 factorial(4) = 24
一个数的阶乘是这个数乘以它前面的数的阶乘,除非这个数是0。0的阶乘是1。(不能取负数的阶乘;只能取正整数。)
所以我们有了我们的明确定义的基本情况。而且我们知道如何处理非基本情况的数字(我们将它们乘以小于它的数字1的阶乘)。我们准备编写函数了。在
所以你呢
用一个函数形式化地表达它(当它很简单的时候!)看起来像
function: if base case: this else: something + function(something closer to the base case)
如果你想要更先进的东西,谷歌有很多信息。在
我强烈推荐看麻省理工学院的intro to programming course。在
Lecture 4讨论递归。在
考虑this。在
更严重的是
递归是一种解决问题的方法,它有一个明确定义的基本情况(或者说,我在这里保持简单)
例如,常被引用的阶乘问题就是一个很好的问题。在
阶乘是做什么的?让我们看看一些例子:
一个数的阶乘是这个数乘以它前面的数的阶乘,除非这个数是0。0的阶乘是1。(不能取负数的阶乘;只能取正整数。)
所以我们有了我们的明确定义的基本情况。而且我们知道如何处理非基本情况的数字(我们将它们乘以小于它的数字1的阶乘)。我们准备编写函数了。在
^{pr2}$所以你呢
用一个函数形式化地表达它(当它很简单的时候!)看起来像
如果你想要更先进的东西,谷歌有很多信息。在
我强烈推荐看麻省理工学院的intro to programming course。在
Lecture 4讨论递归。在
相关问题 更多 >
编程相关推荐