博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript递归
阅读量:5256 次
发布时间:2019-06-14

本文共 952 字,大约阅读时间需要 3 分钟。

什么是递归?

  在函数的内部调用自己

下面有一个例子,通过这个例子,大家就可以了解什么是递归

function fun(){    console.log(new Date())    //获取当前时间,并在控制台打印出来    setTimeout(fun,1000)     //定时器,调用fun函数,1s调用一次}fun()

就这样结果在控制台每隔一秒打印一次。

在面试中,面试官,如果问js中递归的问题,一般都是问阶乘和斐波那契数列。

下面,我将介绍阶乘和斐波那契数列用递归如何做

1. 阶乘

  首先,我们得先了解阶乘的规律:n!= n * (n-1)!

function fun(n){    if(n == 1 || n == 0){        return 1;    }    return n * fun(n-1)}document.write(fun(10));

结果如下:

我们只需更改调用函数中的实参,就可以知晓每一个数的阶乘。

不过,值得注意的是,阶乘是从0开始的,也就是说负数是没有阶乘的,而且0的阶乘是1,因此,在fun函数中,加了判断条件,当n为0或1是,直接返回1;下面的代码就不用执行了。

2. 斐波那契数列

  什么是斐波那契数列?

  斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Fibonacci sequence)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、

  2、3、5、8、13、21、34、........在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)

  有了数列和规律,我们就可以写了

function fun(n){    if(n == 1 || n == 2){        return 1;    }    return fun(n-1) + fun(n-2)}document.write(fun(9));

结果如下:

基本上,递归就结束了。

 

转载于:https://www.cnblogs.com/mercy-up/p/10139278.html

你可能感兴趣的文章
110104_LC-Display(液晶显示屏)
查看>>
httpd_Vhosts文件的配置
查看>>
php学习笔记
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
【洛谷P1816 忠诚】线段树
查看>>
电子眼抓拍大解密
查看>>
poj 1331 Multiply
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
P1107 最大整数
查看>>
多进程与多线程的区别
查看>>
Ubuntu(虚拟机)下安装Qt5.5.1
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>
CodeForces Round #545 Div.2
查看>>
卷积中的参数
查看>>
51nod1076 (边双连通)
查看>>
Item 9: Avoid Conversion Operators in Your APIs(Effective C#)
查看>>
深入浅出JavaScript(2)—ECMAScript
查看>>