天天看点

剑指offer-js 跳台阶-变态跳台阶

跳台阶-变态跳台阶

跳台阶

题目描述:

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。
求该青蛙跳上一个n级的台阶总共有多少种跳法。
           

问题分析:

作为斐波那契数列的延伸,之前写过三种写法,现在用第四种
           

代码展示:

function jumpFloor(number)
{
    // write code here
    //斐波那契问题 -- 继上次三种解法的第四种
    // 1 2 3 4 5 6 
    // 1 2 3 5

        var a = 1, b = 1;
        for (let i = 1; i < number; i++) {
            a = a + b;
            b = a - b;
        }
        return a;
}
           

变态跳台阶

题目描述:

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。
求该青蛙跳上一个n级的台阶总共有多少种跳法。
           

问题分析:

上跳台阶类似都是有规律可循的
    number:	1 2 3 4 5
	跳法种数:   1 2 4 8
           

代码展示:

function jumpFloorII(number)
{
    // 1 2 3 4 5
    // 1 2 4 8
    var n = 1;
    for(let i=1;i<number;i++){
        n = 2*n
    }
    return n;
}
           

总结:

题目不难,关键在于找出规律
	fibonacci	1 2 3 5 8
	2*n	1 2 4 8
           

继续阅读