在面试中遇到的一个题,现在记录下来解决办法。
如果有一级台阶,方法只有1种
如果有两级台阶,则有2种方法
当级数为n的时候有以下两种情况:
1、第n级台阶时是在n-1级上1级上来的
2、第n级台阶时是在n-2级上2级上来的
可以使用递归实现。
def upstairs(num):
if num==1:
return 1
if num==2:
return 2
else:
return upstairs(num-1)+upstairs(num-2)
num = input("请输入台阶级数:")
try:
num = int(num)
steps = upstairs(num)
print("一共有",steps,"种方法上台阶")
except Exception as e:
print("不是数字")
运行结果如下