递归练习1:斐波那契数列

Posted 超浪*牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归练习1:斐波那契数列相关的知识,希望对你有一定的参考价值。

斐波那契数列

  • 问题描述:
    求出斐波那契数列第n项的值?

斐波那契数列它的是这样一个数列:
1、1、2、3、5、8、13、21、34…,
可以找出个规律
fun(1) = 1;
fun(2) = 1;
fun(3) = fun(1)+fun(2);
……
fun(n) = fun(n-2)+fun(n-1);

按照递归三步骤;
①明了函数的功能;假设 fun(n) 的功能是求第 n 项的值,代码如下:

int fun(int n){ 
//ok啦,家人们,这就简单的第一步完成啦

}

②可以看出当fun(1)=1或者fun(2)=1;即n<=2时,reture1可以作为递归出口。

int fun(int n){
	if(n<=2){
		return 1;
		//咋们把这个递归出口给他先安排上.完成第二步
	}
	//……
}

③函数的等价关系式fun(n) = fun(n-2)+fun(n-1);

/*最终代码如下:*/
int fun(int n){
	//1、先写出递归结束条件
	if(n<=2){
		return 1;
	}
	//接着写等价关系
	return fun(n-1)+fun(n-2);
	//其实这个最难的这个等价关系的寻找在分析题目的时候就得出了。
	//这道题对新手也是比较友爱的。
}

这样简单的几步就搞定,是不是很简单?零基础的可能还是不大懂,没关系,之后慢慢按照这个模式练习!好吧,有大佬可能在吐槽太简单了

以上是关于递归练习1:斐波那契数列的主要内容,如果未能解决你的问题,请参考以下文章

08《算法入门教程》递归算法之斐波那契数列

递归2之对青蛙跳台阶和斐波那契数列的思考

编写一递归函数求斐波那契数列的前40项

用递归法计算斐波那契数列的第n项

python递归求斐波那契数列前10项

C语言用递推和递归两种算法完成斐波那契数列的计算,给一下代码