菲波那切数列算法
问题:有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知,一对兔子每个月可以生一对小兔子,
而一对兔子从出生后第3个月起,每月生一对小兔子,加入一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖多少对?
(兔子的规律为数列1,1,2,3,5,8,13,21)---- 菲波那切数列
解法一:
// 解法一: var num1 = 1; //第一个月 var num2 = 1; //第二个月 var sum = 0; for (let i = 3; i <= 12; i++) { sum = num1 + num2; num1 = num2; num2 = sum; } console.log("s
解法二:
// 解法二: function F(n){ if(1 === n){ return 1; }else if(2 === n){ return 1; }else{ return F(n-1) + F(n-2); } } var result = F(12); console.log("result:",result);
解法三:
// 解法三 function F(n){ switch (n) { case 0: return 1; break; case 1: return 1; break; default: return F(n-1) + F(n-2); break; } } var result = F(12); console.log("result:",result);