仔细观察递归:流行编程语言的示例
#javascript #编程 #python #tech

有不同的编程语言,例如Python,Java,C,C ++,Dart,TypeScript,JavaScript和所有这些编程语言都有不同的实现递归方式。

递归是编程中的一个概念,可帮助我们解决某些任务或问题。它可用于替换诸如for循环之类的循环。在本文中,我们将谈论递归以及如何以不同的编程语言实施它。

递归简介。

让我们考虑一个带有其他礼品盒的礼品盒。如果我们打开第一个盒子,我们会看到另一个盒子。这一直持续到我们到达包含礼物的包装盒为止。但是,如果我们想关闭所有盒子,那么我们就必须开始从最小的盒子开始关闭到最大的盒子,这是我们打开的第一个盒子。

在下图中,我们认为最终的红色盒子是我们的礼物,我们需要打开6个盒子才能获得礼物。

recursion image

什么是递归。

从上述解释中,我们可以说递归是指解决一个大问题,通过将其分解成较小的块,直到达到最后一个水平。然后开始从基本案例开始求解每个块,直到达到最大的块为止。

使用技术术语,我们会说递归是编程中的一个概念,它允许我们定义一个函数,并在其函数定义中调用该函数。

怎么运行的。

当我们定义递归功能时,我们需要定义一个条件,该条件有助于我们打破函数的调用并开始求解每个块,直到获得最终答案。该条件称为基本情况或基本条件

就像在礼品盒的示例中一样,我们需要到达红色框,然后才能重新开始关闭。

例如让写一个函数以添加 n 数字 array

算法

  • 首先,我们需要寻找基本案例
  • 其次,我们需要访问该数组中的每个元素并添加 他们在一起,以便最后我们得到所有元素的总和 在数组中

javascript code for add num
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 作为最终数组。

Python实施

countdown code in python

此Pythont代码的输出给出5、4、3、2、1

在JavaScript中实现

countdown code in javascript
此JavaScript代码的输出给出5、4、3、2、1。

2.使用递归创建一系列数字:

如何解决这个问题呢:

该代码将定义一个称为 range_of_numbers 的函数, rangeofnumbers 在JavaScript中,该函数采用了两个称为 startnum endnum的参数/strong>在JavaScript中 如果startnum等于endnum,则应返回第一个参数。
否则,它将值rangeofnumbers(startnum,endnum -1)分配给变量 down ,并返回变量 down

python中的实现

python code for range of numbers

此python代码的输出给出了第一种情况[3、4、5、6、7],第二种情况[3]给出了[3]。

JavaScript中的实现

range-of-numbers code in javascript
此JavaScript代码的输出给出了第一种情况的[3、4、5、6、7],第二种情况给出了[3]。

当我们想将复杂问题分解为较小的问题时,可以使用递归,更换循环的使用并使我们的代码看起来更干净。
但是,在所有情况下都不应实施它,因为它为每个正在进行的递归呼叫保留一个内存的空间。

从上面的文章中,我们看到了有关如何使用和实施递归的示例,我希望您了解递归的全部内容。
谢谢您的阅读。
您可以在twitter上与我联系