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

跳台阶扩展问题

https://www.nowcoder.com/practice/953b74ca5c4d44bb91f39ac4ddea0fee

#先列出规则
#台阶数     跳跃顺序
#1        1
#2        11 2
#3        111 21 12 3 第三个台阶可以有3种跳法,1、可以看做是以第二个台阶跳一步可以到达第三个台阶,那么跳跃顺序为111 21(跟到达第二台阶方法数一样)。   2、看做从第一个台阶跳两步达到第三个台阶,也就是12。所以第三个台阶总的跳跃方法就是2者相加  3、直接跳3个台阶,也就是3
#4        1111 211 121 31 112 22 13 4   #第四个台阶那就有4种跳法,1、第3个台阶跳一步到达4个台阶,那么跳跃顺序为1111 211 121 31。  2、第2个台阶跳两步达到第4个台阶,跳跃顺序为112 22。 3、第1个台阶跳3步,跳跃顺序为13  4、一步到位,跳跃顺序:4
#规律已经出来了。 n个台阶跳法为前n-1个台阶跳法总和,再加上一步到位的顺序
# dp公式:dp[n] = sum(dp[:n])+1
n = int(input())
dp = [1 for i in range(n)]
for i in range(1, n):
    dp[i] = sum(dp[:i])+1
print(dp[n-1])

全部评论

相关推荐

05-16 11:16
已编辑
东华理工大学 Java
牛客73769814...:盲猜几十人小公司,庙小妖风大,咋不叫她去4️⃣呢😁
牛客创作赏金赛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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