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

跳台阶扩展问题

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;
}
全部评论

相关推荐

07-04 16:00
门头沟学院 Java
点赞 评论 收藏
分享
晗江雪:其实我只是觉得你们导员说的很好笑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务