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步,那么一个有多少种走法;

转载于:https://www.cnblogs.com/adaBlog/p/5707715.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值