#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 1;
int b = 1;
int c = 0;
int n = 0;
int i = 0;
printf("请输入你想要计算的斐波那契数字个数\n");
scanf("%d", &n);
printf("%3d", a);
printf("%3d", b);
for (i=2; i < n; i++)
{
c = a + b;
printf("%3d", c);
a = b;
b = c;
}
system("pause");
return 0;
}
这是斐波那契数列的非递归算法。接下来给大家介绍斐波那契数列的递归算法,等两个都完成之后再给大家分析一下两种方式的空间复杂度以及时间复杂度等。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
void Fib(int a, int b, int n)
{
if (n <= 0)
return;
else
n--;
int c = 0;
c = a + b;
a = b;
b = c;
printf("%3d", c);
Fib(a, b, n);
}
int main()
{
int a = 1;
int b = 1;
int c = 0;
int n = 0;
printf("请输入您想要显示的斐波那契数列个数\n");
scanf("%d", &n);
printf("%3d", a);
printf("%3d", b);
n = n - 2;
Fib(a, b, n);
system("pause");
return 0;
}
这是斐波那契的非递归算法。