*一个台阶总共有n级,如果一次可以跳1级,也可以跳2级......它也可以跳上n级。此时该青蛙跳上一个n级的台阶总共有多少种跳法?
想法: 当n = 3 时,有三种跳的方式,第一次跳出一阶后,后面还有Fib(3-1)中跳法; 第一次跳出二阶后,后面还有Fib(3-2)中跳法;第一次跳出三阶后,后面还有Fib(3-3)中跳法。
当n = n 时,共有n种跳的方式,第一次跳出一阶后,后面还有Fib(n-1)中跳法; 第一次跳出二阶后,后面还有Fib(n-2)中跳法..........................第一次跳出n阶后,后面还有 Fib(n-n)中跳法.使用递归算法实现。
递归算法如下:
int jumpfloor(int num)
{
int sum=0;
if(num<=0)
return 0;
else if(num==1)
return 1;
else
{
for(int i=num-1;i>=0;i--)
{
sum+=jumpfloor(i);
}
return sum;
}
<span style="color:#ff0000;">
}</span>