斐波那契数:简单的讲就是除了第1项和第2项是1以外,其它的每一项都等于前两项的和,比如:1,1,2,3,5,8,13.....
在这用递归和非递归两种方法实现:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int Fib1(int n)//非递归实现
{
int i = 1;
int j = 1;
int ret = 0;;
if (n <= 2)
{
return 1;
}
while (n-2)
{
ret = i + j;
i = j;
j = ret;
n--;
}
return ret;
}
int Fib2(int n)//递归实现
{
if (n<=2)
{
return 1;
}
else
{
return (Fib2(n - 1) + Fib2(n - 2));
}
}
int main()
{
int n = 0;
scanf("%d", &n);
printf("%d\n", Fib1(n));//非递归实现
printf("%d\n", Fib2(n));//递归实现
system("pause");
return 0;
}