楼梯有 nn 阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。
时间: 2023-04-28 20:04:35 浏览: 231
这是一个经典的斐波那契数列问题,可以用递归或动态规划来解决。
递归解法:
当楼梯只有1阶或2阶时,只有1种和2种走法,分别为f(1)=1和f(2)=2。
当楼梯有n阶时,第一步可以选择走1阶或2阶,如果选择走1阶,则剩下的n-1阶可以有f(n-1)种走法;如果选择走2阶,则剩下的n-2阶可以有f(n-2)种走法。因此,f(n)=f(n-1)+f(n-2)。
动态规划解法:
用一个数组dp来保存每个阶梯的走法数,dp[i]表示走到第i阶的走法数。初始状态为dp[1]=1和dp[2]=2。然后从第3阶开始,每个阶梯的走法数都可以由前两个阶梯的走法数相加得到,即dp[i]=dp[i-1]+dp[i-2]。
最终,dp[n]就是楼梯有n阶时的不同走法数。
阅读全文