有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]=2for i in range(3,n+1):f[i]=f[i-1]+f[i-2]+f[i-3]print("走法总数:",f[n])