递归菲波那切数列,求大神讲解一下

新手一个,搞不懂用c语言写斐波那契数列,假如求第五步,那五个一是怎么返回出来的,递归函数如下 (只写了递归,其他就不写了)int fun(int n) { if(n==1 || n==2) return 1; else return fun(n-1) + fun(n-2); 求大神讲解!
w340
浏览 1695回答 2
2回答

硕树

i=0;j=1;i=i+j;j=i+j;

望远

#include<stdio.h> int fun(int n)  { //菲波那切数列 1,1,2,3,5,8 //前两项为1,从第三项开始依次是前两项之和 if(n==1 || n==2) //递归结束条件 return 1; //当传入的参数时1或者2时都是返回1(前两项为1) else return fun(n-1) + fun(n-2); //如果不是1或者2,那么采用递归调用将当前项转化为前两项之和 } void main() { printf("第6项是%d\n",fun(6)); //fun(6)=fun(5)+fun(4); //fun(5)=fun(4)+fun(3); //....直到一直递归到fun(1),fun(2) }
打开App,查看更多内容
随时随地看视频慕课网APP