zoukankan      html  css  js  c++  java
  • 递归及练习

    递归:

    分析:递归的思想,举个例子吧!!!电影院看电影院,当你去晚了,然后从最后一排问,你是第几排,一直问到第一排,然后第一排的人又以相同的方式传回来,重复做相同的工作,先去传递“你是第几排”这个问题,然后回归给自己“我是第几排”,得到结果。自己调用自己,会出现无限循环的问题(死循环),所以必须有跳出,结束条件,才能有结果。

    先传递,后回归。必须有跳出才有结果。自己调用自己。

    找规律
    eg:
    用递归算阶乘   5的阶乘   1 * 2 * 3 * 4 * 5
    分析:
    5!  ==     5    *     4

    4!  ==     4    *     3

    3!  ==     3    *     2

    2!  ==     2    *     1!


    fn(5);
    return 5 * fn(4);

    fn(4)
    return 4 * fn(3)

    fn(3)
    return 3 * fn(2)

    fn(2)
    return 2 * fn(1)

    ......

    //实现
    function fn(n){
       if(n == 1) return 1;
       return n * fn(n-1);
    }
    console.log(fn(5));

    11.递归案例

    1.利用递归求1-100的和
    //分析
    // 100 + fn(99);
    // 99 + fn(98);

    //实现
    function sum(n){
    if(n <= 1) return 1;
    return n + sum(n-1);
    }
    console.log(sum(5));
    2.兔子 3个月成年  ——>  繁殖
    1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987
    //分析:
    fn(n) = fn(n-1) + fn(n-2);

    fn(10) = fn(9) + fn(8);
    fn(9) = fn(8) + fn(7);
    fn(8) = fn(7) + fn(6);
    ....

    function fn(n){
       if(n == 1 || n == 2){
           return 1;
      }
       return fn(n-1) + fn(n-2);
    }
    console.log(fn(8));
    3.求最大公约数(辗转相除法(计算过程为:两个数相除得到余数,余数不为0时,让两个数中的最小数与余数在相除,直到余数为0时,那个最小数就为它们的最大公约数))
    function fn(m,n){
       var r = m % n;
       m = n;
       n = r;
       if(r == 0){
           return m;
      }else{
           return fn(m,n);
      }
    }
    console.log(fn(16,8));
    4.
    编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数求/1+1/3+...+1/n

      分析:
      10    1 / 10 + 1 / 8 + 1 / 6
      11    1 / 11 + 1/ 9 + 1 / 7....

      规律:1 / n + fn(n - 2);
      实现:
      function fn(n){
        if(n == 1 || n == 2){
        return 1/n;
      }
      return 1 / n + fn(n-2);
      }
      console.log(fn(10));

  • 相关阅读:
    Linux kernel pwn (四): Bypass SMEP
    Linux kernel pwn(三):Double Fetch
    Linux kernel pwn (二):UAF
    vue安装
    html标签
    javascript简介
    html样式 CSS(Cascading Style Sheets)
    html标签
    scala基础——scala变量
    elasticsearch日常维护
  • 原文地址:https://www.cnblogs.com/ljp1997/p/11442774.html
Copyright © 2011-2022 走看看