1、问题描述
现在有一个台阶,一共有n阶,你一次性可以走1步、2步、3步、......、n步。问:一共有多少种走法。
2、求解思路
第一步走1阶:那么这种情况下的走法数量和剩下n-1阶的走法数量有关;
第一步走2阶:那么这种情况下的走法数量和剩下n-2阶的走法数量有关;
第一步走3阶:那么这种情况下的走法数量和剩下n-3阶的走法数量有关;
第一步走4阶:那么这种情况下的走法数量和剩下n-4阶的走法数量有关;
……
第一步走n阶:那么这种情况下的走法数量和剩下0阶的走法数量有关;
——————————————
那么n阶台阶的所有走法数量就应该是上面所有走法数量的累和。
3、编程实现(递归实现)
n = int(input())
def fun(n):
step = 0
if n==0:
return 1
if n == 1:
return 1
for i in range(1,n+1):
step += fun(n-i)
return step
print(fun(n))
博客围绕增强版走台阶问题展开,该问题是有n阶台阶,可一次性走1步到n步,求走法数量。求解思路是分析第一步走不同阶数时,走法数量与剩余台阶走法数量的关系,最后将所有情况累和。还给出了递归的编程实现。
&spm=1001.2101.3001.5002&articleId=82149074&d=1&t=3&u=7c3e0660d9d74ce3a54e507a7efd2ba2)
3975

被折叠的 条评论
为什么被折叠?



