- 代码实现(环境:Visual Studio 2017)
#include <stdio.h>
#include <windows.h>
#pragma warning(disable:4996);
Fibonacci_DG(int n)
{
if (n < 3)
{
return 1;
}
return Fibonacci_DG(n - 1) + Fibonacci_DG(n - 2);
}
Fibonacci_FDG(int n)
{
int a1 = 1;
int a2 = 1;
int a3 = 1;
for (int i = 3; i <= n; i++)
{
a3 = a1 + a2;
a1 = a2;
a2 = a3;
}
return a3;
}
int main()
{
int n = 0;
int S1 = 0;
int S2 = 0;
printf("请输入一个数:");
scanf("%d", &n);
S1 = Fibonacci_DG(n);
S2 = Fibonacci_FDG(n);
printf("递归结果:%d\n", S1);
printf("非递归结果 %d\n", S2);
system("pause");
return 0;
}