继“跳台阶问题”之“变态跳台阶”

*一个台阶总共有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>



你可能感兴趣的:(继“跳台阶问题”之“变态跳台阶”)