爬楼梯算法
一个小孩练习爬台阶,一共10级台阶,小孩可以一次向上选择爬1-3级。但是第3级和第6级台阶被施加了魔法,小孩一旦踏上就会停下来就开始跳《新宝岛》。那么,不让小孩跳《新宝岛》的爬法一共有多少种 ?
b站技术对抗赛,使用递归方法求解:
sum=0 #起始台阶
stair_num=10 #台阶总数
def jumpstairs(num):
global sum
global stair_num
for i in range(1,4):
if (num+i)==stair_num:
sum=sum+1
return
if (num+i)< stair_num and (num+i)!=3 and (num+i)!=6:
jumpstairs((num+i))
if (num+i)>stair_num:
return
jumpstairs(0)
print(sum)
结果为42种方法。