有n个阶梯,青蛙一次可以跳一个或者两个,求总共有多少种跳法可以到达顶端?
思路:
如果只有一阶,那么只有一种跳法;如果有2阶,那么有2中跳法(跳1阶再跳1阶,一次跳2阶);那么如果有n阶呢?假设对于n阶的阶梯,我们有f(n)中跳法;那么n阶时,我们考虑如果第一次跳共有两种选择:第一次跳了1阶,剩下n-1阶有f(n-1)种跳法;第一次跳了2阶,剩下的n-2阶有f(n-2)种跳法,那么总共的跳法数就是f(n-1)+f(n-2)。到这里我们可以看出这就是斐波那契数列的递归公式,只是前两项稍有区别,写成数学表达式如下:
故代码可得出
int Fbnq(int n)
{
if(n==1||n==2)
return n:
else
return Fbnq(n-2)+Fbnq(n-1):
}