zoukankan      html  css  js  c++  java
  • JS:递归基础及范例——斐波那契数列 、 杨辉三角

    定义:程序调用自身的编程技巧称为递归。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

    一般应用于不是清晰级别的结构名调用上。

    构成递归需具备的条件:
    1. 子问题须与原始问题为同样的事,且更为简单;
    2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理。
     
    例1:斐波那契数列
    //斐波那契数列,又称黄金分割数列,指的是这样一个数列:
    //1、1、2、3、5、8、13、21、……
    //求第i个数
    <script>
    function sl(var i){  
        if(i<=2){  
            return 1;  
        }  else{
           return sl(i-1)+sl(i-2);  
     }
    }
    </script>
    例2:杨辉三角
    //            1         
    //          1   1
    //        1   2   1                                  //第n行第m个数:n=3,m=2时,数字为2;
    //      1   3   3   1
    //   1   4   6   4   1
    //     ......
    //求第n行第m个数
    <script>
    function yhsj(n,m){
      if(m>n){
        return false;
      } else {
            if(m==1 || m==n){
            return 1;
              } else {
              return yhsj(n-1,m) + yhsj(n-1,m-1);
              }
         }
    }
    </script>
  • 相关阅读:
    RABBITMQ/JAVA 客户端测试(再补:利用文件流)
    在虚拟机中安装CentOS7
    RabbitMQ/JAVA 客户端测试(补:利用线程)
    ffmepg-nginx-nginx-rtmp-module配置脚本
    PDO防注入原理分析以及使用PDO的注意事项
    使用MySQL Proxy解决MySQL主从同步延迟
    好文收藏
    CentOS6.6安装mysql出现的问题
    大型网站技术架构相关文章
    Redis必要的一些配置
  • 原文地址:https://www.cnblogs.com/cmzhphp2017/p/7659112.html
Copyright © 2011-2022 走看看