用递归法求斐波那契数列前40项。

一定要用递归法_(:з」∠)_是c语言哦……,求详细答案。。。#include"stdio.h"intFib(intn){if(n<=0){printf("errorin... 一定要用递归法_(:з」∠)_是c语言哦……,求详细答案。。。
#include "stdio.h"
int Fib(int n)
{
if(n<=0)
{
printf("error input!");
return 0;
}
else if(n==1||n==2)return 1;
else return Fib(n-1)+Fib(n-2);
}
int main()
{
Fib(40);
system("pause");
return 0;
}这个答案就不用了……运行不出来【或者能帮我找找这个答案哪里出错了么
展开
 我来答
百度网友faadf46
高粉答主

2019-12-10 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:71.6万
展开全部

用递归法求斐波那契数列前40项方法为:

1、首先,对非法下标进行判断。

2、定义出递归调用的出口n=1或n=2,直接返回1。


3、使用递归直接调用自身即可,不需要使用数组存储,而是使用压入栈 的数据。注意idea中侧边会显示递归的小圈。

4、添加测试函数,输出前5项与前10项。

5、测试结果如下。

注意事项:

斐波那契数列在自然科学的其他分支,有许多应用。例如,树木的生长,由于新生的枝条,往往需要一段“休息”时间,供自身生长,而后才能萌发新枝。

听不清啊
高粉答主

2013-10-16 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include "stdio.h"

long Fib(int n)            //int 类型如果是2字节的话就会溢出

{

if(n<=0)

{

printf("error input!");

return 0;

}

else if(n==1||n==2)return 1;

else return Fib(n-1)+Fib(n-2);

}

int main()

{

 printf("%ld\n",Fib(40));        //没有输出语句

 system("pause");

 return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f3b3e02
推荐于2018-03-01 · TA获得超过2156个赞
知道小有建树答主
回答量:821
采纳率:90%
帮助的人:579万
展开全部
#include "stdio.h"
int Fib(int n,int a,int b)
{
if(n>40)
return 0;
else 
{
printf("%10d",a+b);
return Fib(n+1,b,a+b);
}

int main()
{
printf("         1         1");
Fib(3,1,1);
return 0;
}

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
偶开狗眼
2013-10-16 · 超过23用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:49.8万
展开全部
显示一下就行了
printf("%d",Fib(40));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式