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>

转载于:https://www.cnblogs.com/cmzhphp2017/p/7659112.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值