有n级台阶,一次可跨1级、2级或3级,这样走完n级台阶的方法有很多种。
例如n=4时,可得:4=1+1+1+1=1+1+2=1+2+1=2+1+1=1+3=3+1=2+2,共7种走法。请编写程序实现n级台阶共有多少种走法,其中输入为台阶数n,输出为走法的总数。
计算公式:f(n)=f(n-1)+f(n-2)+f(n-3)
每次计算f(n)都要用到前面三个相邻的值,用表格存储比较快,节省时间。
while True:
n=int(input("请输入台阶的级数:"))
if n==0:
print("走法总数:1")
elif n==1 or n==2 :
print("走法总数:",n)
else:
f=[1]*(n+1)
f[0]=1;f[1]=1;f[2]=2
for i in range(3,n+1):
f[i]=f[i-1]+f[i-2]+f[i-3]
print("走法总数:",f[n])