假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
解题思路:假设到n层需要x种方法,到n+1层需要y种方法,则到n+2层需要x+y种方法。因为从第n层到第n+2层,只能从n到n+1再到n+2或者直接从n到n+2,所以加起来是x+y种方法。
代码:
设定一个列表cache,cache[-1]代表到不同的方法爬到楼顶。再循环,用cache[-1]赋给新的cache[0],cache的总和赋给cache[-1],最后返回cache[-1]。