1、首先,要知道什么是斐波那契数列,
http://baike.baidu.com/link?url=aR5yffmmY5ceh25k_lt9dt0hvRB1GnIfeLrlFviUJgnIx9XVTFwY4UNGLfSBaIJx
2、对于实现斐波那契数列的实现有两种方式:迭代和递归
我找到一篇文章说的还挺好的!http://blog.youkuaiyun.com/swliao/article/details/5337896
简言之,迭代就是用已知的创造出未知的,如下面实现斐波那契数列的代码:
int main()
{
int i ;
int a[MAXSIZE];
a[0] = 0;
a[1] = 1;
for (i = 2;i<MAXSIZE;i++)
{
a[i] = a[i-1]+a[i-2];
}
system("pause");
}
从上面可以看出来,我们是使用的前面的数字来推测出后面的变量的!这种方法叫迭代!
3、递归:简言之就是自己调用自己的函数称为递归,下面是我自己写的,和别人的对比一下,确实只能是个渣渣!
#include <stdio.h>
#define MAXSIZE 10
#define ERROR 0
#define OK 1
int FeiBoNaQie(int n)
{
int X;
if (n == 0)
{
return X = 0;
}
if (n == 1)
{
return X = 1;
}
return X = FeiBoNaQie(n-1)+FeiBoNaQie(n-2);
}
//斐波那契的迭代问题,还木有进行
int main()
{
int n;
int X;
scanf("%d",&n);
X = FeiBoNaQie(n);
printf("%d",X);
system("pause");
}
修改 一下,变得精简了许多,如下:#include <stdio.h>
#define MAXSIZE 10
#define ERROR 0
#define OK 1
int FeiBoNaQie(int n)
{
if (n <2)
{
return n == 0 ? 0 : 1;
}
return FeiBoNaQie(n-1)+FeiBoNaQie(n-2);
}
//斐波那契的迭代问题,还木有进行
int main()
{
int n;
int X;
scanf("%d",&n);
X = FeiBoNaQie(n);
printf("%d",X);
system("pause");
}