fibonacci数列和跳台阶问题(二)

2014-11-24 09:54:58 · 作者: · 浏览: 1
的结果。就像题目所说,给我fibonacci在我们计算机中的一个应用吧,就是跳台阶的问题。给定n个台阶,有两种选择,就是一次可以跳一个台阶,还有是一次可以跳两个台阶。求总共有多少总跳法,并分析算法的时间复杂度。把n级台阶时的跳法看成是n的函数,记为f(n)。当n>2时,第一次跳的时候就有两种不同的选择:一是第一次只跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);另外一种选择是第一次跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)。因此n级台阶时的不同跳法的总数f(n)=f(n-1)+(f-2)。
我们把上面的分析用一个公式总结如下:
/ 1 n=1
f(n)= 2 n=2
\ f(n-1)+(f-2) n>2
如果有三种选择就是一次可以分别跳1,2,3,次的话,这个递推式就可以写成:f(n)=f(n-1)+f(n-2)+f(n-3).