题目:
# coding=utf-8
def climb1(n): #递推法 逆序从15步向后看
a = 1
b = 2
c = 4
if n==1:
return 1
elif n==2:
return 2
elif n==3:
return 4
else:
for i in range(n-3):
c, b, a = a+b+c, c, b
return c
print(climb1(15))
#--------递归法--------
def climb2(n):
a=1
b=2
c=4
if n == 1:
return 1
elif n == 2:
return 2
elif n == 3:
return 4
else:
return climb2(n-1)+climb2(n-2)+climb2(n-3) #n>3时,f(4)=f(1)+f(2)+f(3),归结为f(n)=f(n-1)+f(n-2)+f(n-3)
print(climb2(15))
输出