非递归
直接从定义出发:Fn+2 = Fn+1 + Fn
函数部分:
int Fibonacci(int n)//斐波那契数列:F(n+2)=F(n+1)+F(n) - Fibonacci
{
int i;
int F[100000];
F[0] = 1;
F[1] = 1;
for (i = 2; i < n; i++)
F[i] = F[i - 2] + F[i - 1];
return F[n-1];
}
主程序部分:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
printf("请输入数字:");
int n;
scanf("%d", &n);
printf("第%d个斐波那契数为%d\n", n, Fibonacci(n));
system("pause");
return 0;
}
递归
函数部分:
int Fib(int n)
{
if (n <= 2)
return 1;
else
return Fib(n - 1) + Fib(n - 2);
}
主程序
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
printf("请输入数字:");
int n;
scanf("%d", &n);
printf("第%d个斐波那契数为%d\n", n, Fib(n));
system("pause");
return 0;
}