为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
w340 2016-12-13 17:27:05
新手一个,搞不懂用c语言写斐波那契数列,假如求第五步,那五个一是怎么返回出来的,递归函数如下 (只写了递归,其他就不写了)int fun(int n) { if(n==1 || n==2) return 1; else return fun(n-1) + fun(n-2); 求大神讲解!
查看完整描述

2 回答

?
硕树

TA贡献14条经验 获得超6个赞

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

查看完整回答
1 反对 回复 2016-12-21
?
望远

TA贡献1017条经验 获得超1032个赞

#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)
}


查看完整回答
反对 回复 2016-12-14
  • 2 回答
  • 0 关注
  • 1687 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信