斐波那契数列:
又称黄金分割数列,指的是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*),即这个数列从第二项开始,每一项都等于前两项之和。
递归实现及迭代输出代码如下,递归的效率真的太慢了。
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "time.h"
int Fib(int n)
{
if (0 == n)
{
return 0;
}
else if ((n == 1) || (n == 2))
{
return 1;
}
else
{
return Fib(n-1)+Fib(n-2);
}
}
int main()
{
int n = 0,m1 = 0,m2 = 1,m3 = 0;
printf("Input Fib Num\r\n");
scanf("%d",&n);
int a = clock();
printf("%d ",m1);
printf("%d ",m2);
for (int i = 2; i < n; i++)
{
m3 = m1 + m2;
m2 = m1;
m1 = m3;
printf("%d ",m3);
}
printf("\r\n");
int b = clock();
printf("%dms",b-a);
getchar();
return 0;
}