【问题描述】
侯先生每天都会爬楼梯锻炼身体,他有时候一次上跨一级,有时候一次上跨两级...有一天侯先生想弄明白一个很难的问题:从最下面的第1级开始到顶端的第n级一共有多少种走法呢?比如n是3时,有两种走法(或者直接从第1级上跨两步到第3级,或者从第1级跨一步到2级再跨一步到第3级)。
请你帮帮侯先生,给你n(1<n<40)的值,你帮忙计算并输出有多少种爬到顶端的方法。
【输入形式】
输入n的值,n是1到40之间的整数。
【输出形式】
输出一共有多少种从第1级台阶到第n级台阶的走法。
【样例输入】
4
【样例输出】
3
【完整代码】
def fun(n):
if n == 1:
return 0
elif n == 2:
return 1
elif n == 3:
return 2
else:
return fun(n - 1) + fun(n - 2)
n = int(input())
print(fun(n))
【代码讲解】
状态转移式:fun(n) = fun(n