当前位置: 代码迷 >> 综合 >> 走台阶-9
  详细解决方案

走台阶-9

热度:74   发布时间:2023-10-13 21:37:50.0

有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])

 

  相关解决方案