【题目】跳台阶问题。一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级。求总共有多少总跳法,并分析算法的时间复杂度。
【思路】思路1:可以把n看成1和2的组成,问题可以转变为n由多少个1和2组成,以i个2为例就是n-i的i个2的组合。
思路2:第一次只跳1 级,此时跳法数目等于后面剩下的n-1 级台阶的跳法数目,即为f(n-1);另外一种选择是第一次跳 2级,此时跳法数目等于后面剩下的 n-2级台阶的跳法数目,即为f(n-2)。因此n 级台阶时的不同跳法的总数f(n)=f(n-1)+(f-2),这就成了Fibonacci序列。
【代码】
本文探讨了一个经典的跳台阶问题,即一个人每次可以跳1级或2级台阶,求达到n级台阶的所有可能路径数量。通过两种不同的思路进行了解析,一种是组合数学的方法,另一种则是递归方法,并给出了相应的C++实现代码。
1375

被折叠的 条评论
为什么被折叠?



