js递归函数——函数体内挪用本函数的方式

访客4年前黑客资讯1156

在js中通过若是一个函数直接或间接挪用函数自己,则该函数称为递归函数。递归是一种头脑:类似于我们的计数器,开闭原则。  递归的实质就是函数自己挪用自己。  递归注重点:递归必须有跳出条件,否则是死循环。

我们接纳内联函数来做说明,内联函数是指虽然在函数外没有声明变量f,但是在函数内部,是可以使用f()来挪用自己的。

兔子序列(斐波那契数列 )
var f=function(n) {
    if(n<2){
        return n;
    }else{
      return f(n-1)+f(n-2);//挪用自身函数实现递归
     }
}

console.log(f(5))值为5

阶乘递归函数  
var f=function(n){ 
    if (n<=1){ /*跳出条件*/
       return 1; 
    }else{ 
         return n*f(n-1);
    } 
}

 console.log(f(5)) 值为5*4*3*2*1=120

求n^m次方  
var f=function(a,b){
   if(b==0){
      return 1;
   }
   return f(a,b-1)*a;
}

console.log(f(2,5))值为32

求等差数列前几项的和 
var f=function(n) {
    if (n == 1){
       return 1;
    }
    return f(n - 1) + (2 * n - 1)
}

console.log(f(5))值为25

在操作递归时,递归会把自己参数中的值举行通报,直到我们通报的值到达我们设置的跳出条件时才会住手通报,尔后面的公式指的是与我们需要获得的值举行的相对应操作,当我们写在函数中的值就相当于每一个通报的实参。

通过上面的方式实现效率异常低, 缘故原由就在于, 需要频频挪用函数自生, 且每次挪用都有许多重复盘算, 很明显, n越大, 挪用次数越多.若是举行界限项庞大的函数,内存会大量虚耗。

相关文章

谷歌再购IBM 200项专利:累计超过2200项

中国北京时间1月4日信息,据PCWorld网站报导,Google再度回收了超出200项IBM的专利权,先前Google早已从IBM回收了大概2000项专利权。 这一信息最先是由科技博客传来的,...

找黑客帮忙微信(怎么找黑客帮忙盗qq)

亲绑定手机号了还是比较安全的哦,这样就算是被别人盗了只要手机号还在你这你就可以找回QQ重设密码 有没有出租车计价器刷卡的卡片 一种是通过一些简单的,通过一些,手段让你自己告诉他,你自己的微信和QQ,另...

芝士是什么(芝士和奶酪有什么区别)

芝士是什么(芝士和奶酪有什么区别)

我们大家应该对芝士和奶酪非常的熟悉,我们经常可以吃到它们,很多人还会把芝士和奶酪弄混淆,因为它们长得差不多,那芝士和奶酪有什么区别?芝士是什么做的?芝士和奶酪是我们经常吃到和用到的,其实芝士和奶酪是同...

找黑客改成绩告诉辅导员,黑客软件查看手机短信记录,黑客能破解赌博app吗

跟着移动工作的开展,不论是企业职工仍是国家单位工作人员,都会用手机拜访公司内部数据,依据IBM的研讨,用户对移动设备上的网络垂钓进犯的回应是桌面的三倍,而原因只是是因为手机是人们最早看到音讯的当地,并...

tar 打包压缩目录,压缩文件出现上层目录

zip方法 zipPath参数为保存zip的文件路径 srcPath参数为需要压缩的目录 在linux window上面测试无问题!主要是编码问题比较麻烦~要是有其他异常 请留言 或者 有什么更好的...

深圳市商务守候学员伴游服务【金红燕】

深圳市商务守候学员伴游服务【金红燕】 今日给大伙儿共享的內容是“深圳市商务守候学员伴游服务【金红燕】”,我是金红燕,来源于宝鸡市,2020年二十岁,做为岗位:外国籍商务,我喜爱我的岗位:外国籍商务。三...