我会用两种方法来实现斐波那契数列和阶乘一种是for循环的形式另外一种是常见的递归
1.斐波那契数列for循环的方式
//斐波那契数列1,1,2,3,5,8,13
function(n){
var first = 1,
second = 1,
third;
if(n===1||n===2){ //如果n=1或n=2直接返回1
return 1
}``
for(var i =1;i<=n;i++){
third = first + second //下一位等于前两位的和
first = second
second = third
}
return third
}
2.递归的方式,使用递归的方式需要满足两个条件
a.规律(任意第n个数等于前两个数的和)
b.入口(第一位和第二位等于1)
function fn(n) {
if(n===1||n===2){
return 1
}
return fn(n-1) + fn(n-2)
}
- 阶乘for循环的方式
function mul(n){
var mul = 1
for(var i=1 ; i< =n ; i++){
mul *= i
}
return mul
}
4.阶乘使用递归的方式
function mul(n){
if(n===0||n===1){
return 1
}
return mul(n-1)*n
}