|
#题目:一栋楼有N阶楼梯,兔子每次可以跳1、3或5阶,问一共有多少种走法?
#对应1,2,3阶楼梯的方法数#比如n=5,1+1+1+1+1=1+3+1=1+1+3=3+1+1=5=5,共有5种不同的方法
#n=4,1+1+1+1=1+3=3+1=4,共有3种不同的方法
#n=3,1+1+1=3=3,共有2种不同的方法
#n=2,1+1=2,共有1种不同的方法
#n=1,1=1,共有1种不同的方法
#递归法
def climbStairs1(stairs):
'''
:param stairs:the numbers of stair
:return:
'''
if isinstance(stairs,int) and stairs > 0:
basic_num = {0:1,1:1,2:1,3:2,4:3,5:5}
if stairs in basic_num.keys():
return basic_num[stairs]
else:
return climbStairs1(stairs-1) + climbStairs1(stairs-3)+ climbStairs1(stairs-5)
else:
print( 'the num of stair is wrong')
return False
print (climbStairs1(12))#12阶楼梯
========
116 |
|