递归求解走台阶问题,一次可以走一步、两步、三步、...、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))

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值