递归求解走台阶问题,一次可以走一步、两步、三步、...、n步(经典面试题——增强版走台阶)

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))

猜你喜欢

转载自blog.csdn.net/su_bao/article/details/82149074