楼梯上有n阶台阶,上楼时可以一步上1阶,也可以一步上2阶,编写算法计算共有多少种不同的上楼梯的方法
思路:若n=1,有一种方案。若n=2,有2种方案(1+1和2)。若n=3,可以到了2再走一级(1+1)+1,(2)+1,也可以到了1走两级(1)+2。所以,对于n,可以拆解为走到n-1再走一级,或者走到n-2再走两级。递推方程:f(n)=f(n-1)+f(n-2),类似斐波那契数列,区别在于斐波那契数列前面是两个1。
def solution(n):
if n==1:
return 1
elif n==2:
return 2
else:
return solution(n-1)+solution(n-2)
#注意前面的空格
n=int(input())
print('方案数:', solution(n))#,逗号别漏写