js中的斐波那契数列法

  //斐波那契数列:1,2,3,5,8,13……
  //从第3个起的第n个等于前两个之和
  //解法1:
  var n1 = 1,n2 = 2;
  for(var i=3;i<101;i++){
    var reg = n1 + n2;
    console.log('第'+i+'个为:'+reg);
    n1 = n2;n2 = reg;
  }

  //解法2:开枝散叶,递推到一开始的1或2
  //
  //以n=8 举例
//
//                        8
//                       /  \
//                      /    \
//                     /      \
//                    7        6
//                   /  \      /\
//                  /    \    自行脑补
//                 6      5
//                /  \    /\
//               /    \   自行脑补
//              /      \
//             /        \
//            /          \
//            5           4
//           / \         / \
//          /   \       /   \
//         4     3     3     2
//        / \   / \   / \
//       3  2  2   1 2   1
//      / \
//      2 1

// 此解法拆成好多好多次执行,小心执行。。。
function com(stair){ if(stair == 1) return 1; if(stair == 2) return 2; return com(stair - 1) + com(stair - 2); } var n = 100; console.log(com(n));

 

 

参考资料:

【面试题】N级台阶(比如100级),每次可走1步或者2步,求总共有多少种走法?

有100格台阶,可以跨1步可以跨2步,那么一个有多少种走法;

posted @ 2016-07-26 15:40  蒲公英的种子90  阅读(319)  评论(0编辑  收藏  举报