其他分享
首页 > 其他分享> > 青蛙跳台阶/跳楼梯

青蛙跳台阶/跳楼梯

作者:互联网

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)

思路:找规律:跳三级台阶等于跳两级台阶的跳法+跳一级台阶的跳法。跳四级台阶等于跳三级台阶的跳法+跳二级台阶的跳法。明显也符合斐波那契数列的规律f(n) = f(n-1) +f(n-2)

代码:

 1 function jumpFloor(number)
 2 {
 3     // write code here
 4     if(number <= 0) return 1;
 5     if(number <= 2) return number;
 6     let i = 2;
 7     let prev = 1;
 8     let curr = 2;
 9     let result = 0;
10     while(i++ < number){
11         result = prev + curr;
12         prev = curr;
13         curr = result;
14     }
15     return result;
16 }
17 module.exports = {
18     jumpFloor : jumpFloor
19 };

 注意:有的题目需要取模:答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1

 1 /**
 2  * @param {number} n
 3  * @return {number}
 4  */
 5 var numWays = function(n) {
 6     if(n<=0) return 1;
 7 if(n<=2) return n ;
 8  let i = 2;
 9  let pre = 1;
10  let curr = 2;
11  let res = 0;
12  while(i++ < n){
13 res = (pre + curr) %1000000007;
14 pre = curr;
15 curr = res;
16  }
17  return res;
18 };

 

标签:取模,台阶,青蛙,跳法,number,跳上,楼梯
来源: https://www.cnblogs.com/icyyyy/p/14797922.html