C语言递归实现青蛙跳台阶

题目分析:

  小青蛙跳到第n阶也就是最后一阶台阶,可以从n-1来,也可以从n-2来。第n-1级台阶可以从n-2,

或者n-3来。第n-2级可以从n-3或者n-4来。这可以用递归来解决。

如果一次跳一级,则剩下n-1级台阶,有f(n-1)种跳法;一次跳两级,剩下n-2级,有f(n-2)种跳

法。

比如:

C语言递归实现青蛙跳台阶_第1张图片


每一节台阶都有上一次跳过来的2种跳法。总共有多少种呢?

f(n)=f(n-1)+f(n-2)

或者可以从找规律的角度思考:

n              1           2           3            4          5......


跳法         1           2          3            5           8......

代码:

#include 
int jump(int n)
{
	int sum=0;
	if(n>2)
	{
		sum=jump(n-1)+jump(n-2);		
	}
	else if(n>0)//0

结束语:

有参考网上的分析与代码,如有错误,请多包涵。

你可能感兴趣的:(算法,c语言)