递归是什么?

秒速五厘米 2022-03-20 11:25 302阅读 0赞

程序调用自身就叫做递归。
递归一般用来算一些比较麻烦的算法问题。
递归跟循环的区别,循环注重过程,而递归值注重结果。
简单的来说就是:用循环能实现的,递归一般可以实现,但是能用递归实现的,循环不一定能。因为有些题目①只注重循环的结束条件和循环过程,而往往这个结束条件不易表达(也就是说用循环并不好写);②只注重循环的次数而不注重循环的开始条件和结束条件(这个循环更加无从下手了)。
要想理解递归一时半会也弄不明白。但是写递归需要记住三个步骤。
1.首先去找临界值,即无需计算,获得的值。

  1. 找这一次和上一次的关系
  2. 假设当前函数已经可以使用,调用自身计算上一次和这一次的关系。
    下面是递归实现的一个简单列子。

    /*

    1. sum(100) = sum(99) + 100;
    2. sum(n) = sum(n - 1) + n;
    3. 计算1+2+3+…+n的和
    4. */
    5. function sum(n){
    6. if(n == 1){
    7. return 1;
    8. }
    9. return sum(n - 1) + n;
    10. }
    11. alert(sum(100));

假如是计算1+2+…+100的和。首先要找出不用去计算就可以得到的值。
1+…+100 ,哪么1是确定的值。 然后再去找最后一次与上一次的关系。哪么就可以直接得出 1+…+100的值。

发表评论

表情:
评论列表 (有 0 条评论,302人围观)

还没有评论,来说两句吧...

相关阅读

    相关 什么

    什么是递归 \\递归:\\如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。简单理解:函数内部自己调用自己, 这个函数就是递归函数 \\注意:\\递归函数的作

    相关 什么

    > 目前我找到的对递归最恰当的比喻,就是查词典。 > 我们使用的词典,本身就是递归,为了解释一个词,需要使用更多的词。 > 当你查一个词,发现这个词的解释中某个词仍然不

    相关 什么

    程序调用自身就叫做递归。 递归一般用来算一些比较麻烦的算法问题。 递归跟循环的区别,循环注重过程,而递归值注重结果。 简单的来说就是:用循环能实现的,递归一般可以实