用python解答该题目1190:上台阶 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 17719 通过数: 4957 【题目描述】 楼梯有n(71>n>0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法。 【输入】 输入的每一行包括一组测试数据,即为台阶数n。最后一行为0,表示测试结束。 【输出】 每一行输出对应一行输入的结果,即为走法的数目。 【输入样例】 1 2 3 4 0 【输出样例】 1 2 4 7
时间: 2024-04-10 18:27:34 浏览: 154
你可以使用递归来解决这个问题。首先定义一个递归函数,输入参数为台阶数n,函数返回值为走法的数目。然后根据题目条件,分为三种情况进行递归计算:
1. 当n为0时,表示没有台阶了,返回0种走法。
2. 当n为1时,只有一阶台阶,返回1种走法。
3. 当n为2时,有两种走法:一步上1阶台阶两次或者一步上2阶台阶一次,返回2种走法。
4. 当n大于2时,可以选择一步上1阶台阶、一步上2阶台阶或者一步上3阶台阶,所以总的走法数目等于上这三种情况的走法数目之和。
下面是用Python实现的代码:
```python
def climb_stairs(n):
if n == 0:
return 0
elif n == 1:
return 1
elif n == 2:
return 2
else:
return climb_stairs(n-1) + climb_stairs(n-2) + climb_stairs(n-3)
while True:
n = int(input())
if n == 0:
break
print(climb_stairs(n))
```
希望对你有帮助!如果还有其他问题,请随时提问。
阅读全文