题解 | #跳台阶扩展问题#

跳台阶扩展问题

http://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387

反过来,比如青蛙站在第n阶台阶,那么第一次它的跳法有:
(n-1)、(n-2)、(n-3)......(n-n)这么多种,
如果它第一次跳法为:(n-1),那么接下来跳法有:(n-1)-1、(n-1)-2、(n-1)-3......(n-1)-n这么多种;
如果它第一次跳法为:(n-2),那么接下来跳法有:(n-2)-1、(n-2)-2、(n-2)-3......(n-2)-n这么多种;
.....略
那么第一次跳法次数可以用一个for()循环表示,共 for(let i = 1;i<number;i++) 共i种;
如果它第一次跳法为:(n-1),那么接下来次数有共 for(let i = 1;i<number-1;i++) 共i种;
如果它第一次跳法为:(n-2),那么接下来次数有共 for(let i = 1;i<number-2;i++) 共i种;
....
那么可以递归表示:

function jumpFloorII(number)
{
    // 总共次数
    let sum = 1;
    for(let i = 1;i<number;i++){
        sum += jumpFloorII(i);
    }
    return sum;
}
全部评论

相关推荐

11-09 11:01
济南大学 Java
Java抽象带篮子:外卖项目真得美化一下,可以看看我的详细的外卖话术帖子
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务