标题:[求助]斐波那契数列的递归算法和非递归算法
只看楼主
liuxia003486
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-10-28
 问题点数:0 回复次数:3 
[求助]斐波那契数列的递归算法和非递归算法
斐波那契数列的定义为:她的第1项和第2项均为1,以后各项为其前2项之和,若斐波那契数列中的第N项用Fib(n)表示,则计算公式为:
Fib(n)={1 (n=1或者2)
{Fib(n-1)+Fib(n-2) (n>2)
试写出计算 Fib(n)的递归算法和递归算法,并分析它们的时间复杂度和空间复杂度。
搜索更多相关主题的帖子: 递归算法 Fib 定义 空间 
2006-10-28 11:57
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
得分:0 


#include<stdio.h>
#define N 15
void fun1();//非递归非数组
void fun2();//非递归数组
int fun3(int);//递归
void main(){
fun1();
putchar(10);
fun2();
putchar(10);
for(int i=1;i<=N;i++)
printf(\"%d \",fun3(i));
}

void fun1()
{
int x=1,y=1,count=1;
printf(\"%d \",x);
while(count<N)
{printf(\"%d \",y);
y=x+y;
x=y-x;
count++;}
}

void fun2()
{
int a[20]={1,1};
for(int i=2;i<N;i++)
a[i]=a[i-1]+a[i-2];
for(int j=0;j<N;j++)
printf(\"%d \",a[j]);
}

int fun3(int n)
{if(n==1||n==2) return 1;
else return fun3(n-1)+fun3(n-2);
}


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-28 19:10
次次
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-10-27
得分:0 
也可以用叠代
2006-10-28 21:06
liuxia003486
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-10-28
得分:0 
[休闲]
非常感谢帮助我的人!
2006-10-29 11:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-99285-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.140793 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved