题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路
递归法。和跳台阶的思路一样,但是如果台阶数较多的话浪费资源是极高的。- 公式法。简单分析一下问题,即可得出精确解。 上式中1为一次性跳上去的跳法。两式相减可得:$f(n)=2f(n-1)$,即多一层台阶,跳法翻倍。而$f(1)=1$,$f(2)=2$,故$f(n)=2^{n-1}$
代码
Python(2.7.3)
递归法
1 | # -*- coding:utf-8 -*- |
运行时间:160ms
占用内存:5856k
公式法
1 | # -*- coding:utf-8 -*- |
运行时间:28ms
占用内存:5728k