【递归与改进】面试题:100级台阶,每跨一步只能1级或者2级台阶,一共多少种方案

面试时的想法是:最多一次两级,因此把100级台阶两个两个一组分成50个线段相连,最多走50个两级,那就是一共:
在这里插入图片描述
实际上这样划分丢失了一些可能的情况,比如可能走法:先走1级,再走2级 这种方案在上面就不会出现。

看了其他人的解析,应该用递归求解,但是递归会导致重复计算,于是在面试官要求的时间内可能算不出来,于是需要改进。

递归解法和改进解法如下(Python版),100级台阶共573147844013817084101种方案:
在这里插入图片描述