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>
  • 相关阅读:
    mongodb 逻辑操作符
    mongodb 操作符
    js 对象拷贝的三种方法,深拷贝函数。
    html语义化
    移动端meta
    onmouseOver、onmouseOut 和 onmouseEnter、onmouseLeave的区别
    javascript阻止事件冒泡和浏览器的默认行为
    js中return的用法
    Ubuntu联网设置
    视窗宽高offset、client、scroll
  • 原文地址:https://www.cnblogs.com/cmzhphp2017/p/7659112.html
Copyright © 2011-2022 走看看