有不同的编程语言,例如Python,Java,C,C ++,Dart,TypeScript,JavaScript和所有这些编程语言都有不同的实现递归方式。
递归是编程中的一个概念,可帮助我们解决某些任务或问题。它可用于替换诸如for循环之类的循环。在本文中,我们将谈论递归以及如何以不同的编程语言实施它。
递归简介。
让我们考虑一个带有其他礼品盒的礼品盒。如果我们打开第一个盒子,我们会看到另一个盒子。这一直持续到我们到达包含礼物的包装盒为止。但是,如果我们想关闭所有盒子,那么我们就必须开始从最小的盒子开始关闭到最大的盒子,这是我们打开的第一个盒子。
在下图中,我们认为最终的红色盒子是我们的礼物,我们需要打开6个盒子才能获得礼物。
什么是递归。
从上述解释中,我们可以说递归是指解决一个大问题,通过将其分解成较小的块,直到达到最后一个水平。然后开始从基本案例开始求解每个块,直到达到最大的块为止。
使用技术术语,我们会说递归是编程中的一个概念,它允许我们定义一个函数,并在其函数定义中调用该函数。
怎么运行的。
当我们定义递归功能时,我们需要定义一个条件,该条件有助于我们打破函数的调用并开始求解每个块,直到获得最终答案。该条件称为基本情况或基本条件。
就像在礼品盒的示例中一样,我们需要到达红色框,然后才能重新开始关闭。
例如让写一个函数以添加 n 数字 array
算法
- 首先,我们需要寻找基本案例。
- 其次,我们需要访问该数组中的每个元素并添加 他们在一起,以便最后我们得到所有元素的总和 在数组中
n <= 0 // if语句中的此条件是指基本条件。
每次该代码运行时,它将检查是否满足条件,如果不执行此条件,则在满足基本条件之前会执行其他语句。
代码如何运行
让我们考虑该功能中通过的论点是([1,2,3,4],3)
第一次:
n <= 0吗?不,所以它可以执行其他语句
这是addnums([1,2,3,4],2) + arr [2]
第二次:
n <= 0吗?不,所以它可以执行其他语句
这是addnums([1,2,3,4],1) + arr [1]
第三次:
n <= 0吗?不,所以它可以执行其他语句
这是addnums([1,2,3,4],0) + arr [0]
由于n = 0,它返回0
然后它开始向上进行
arr [0] = 1
arr [1] = 2
arr [2] = 3
因此需要1+2+3,并给出6
关于递归的一些示例
从Abiaoqian获得的例子
1.编写一个使用递归创建倒数的函数:
如何解决这个问题呢
。
该代码将定义一个称为 Countdown的函数在Pyhton中的JavaScript Count_down ,该函数采用一个称为 n 的参数,如果 n 小于1,然后返回一个空数组
如果不是,则CALS定义一个称为 count_array(或CountArray)的变量存储在 count_array(countArray)中的每个值都包含在数组 count_array(或countarray) 和返回 count_array 作为最终数组。 P>
Python实施
此Pythont代码的输出给出5、4、3、2、1
在JavaScript中实现
2.使用递归创建一系列数字:
如何解决这个问题呢:
该代码将定义一个称为 range_of_numbers 的函数, rangeofnumbers 在JavaScript中,该函数采用了两个称为 startnum 和 endnum的参数/strong>在JavaScript中
如果startnum等于endnum,则应返回第一个参数。
否则,它将值rangeofnumbers(startnum,endnum -1)分配给变量 down ,并返回变量 down 。
python中的实现
此python代码的输出给出了第一种情况[3、4、5、6、7],第二种情况[3]给出了[3]。
。JavaScript中的实现
此JavaScript代码的输出给出了第一种情况的[3、4、5、6、7],第二种情况给出了[3]。
但是,在所有情况下都不应实施它,因为它为每个正在进行的递归呼叫保留一个内存的空间。
从上面的文章中,我们看到了有关如何使用和实施递归的示例,我希望您了解递归的全部内容。
谢谢您的阅读。
您可以在twitter上与我联系