菲波那切数列算法

问题:有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知,一对兔子每个月可以生一对小兔子,
而一对兔子从出生后第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);

  

 
posted @ 2019-07-19 14:15  小小飞郭  阅读(1484)  评论(0编辑  收藏  举报