递归练习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:斐波那契数列的主要内容,如果未能解决你的问题,请参考以下文章