这期的Python学习教程跟大家讲一下算法问题,以楼梯台阶为例!
有一个有N个台阶的楼梯,你一次可以爬1或2个台阶。
给定N,编写一个函数,返回爬完楼梯的方式数量。步骤的顺序很重要。
例如,如果N是4,那么有5种方式:
1,1,1,1
2,1,1
1,2,1
1,1,2
2,2
如果规定的不是一次只能爬1或2步,而是可以使用正整数X集合内的任意数字爬楼梯,那会怎么样?例如,如果X = {1,3,5},则表示一次爬升1,3或5阶楼梯。
解决方案
从一些测试案例开始总是好的做法。让我们从小的案例开始,看看能否找到某种规律。
N = 1,1种爬楼方式:[1]
N = 2,2种爬楼方式:[1,1],[2]
N = 3,3种爬楼方式:[1,2],[1,1,1],[2,1]
N = 4,5种爬楼方式:[1,1,2],[2,2],[