1. 程式人生 > >求第n個斐波那契數

求第n個斐波那契數

斐波那契數:簡單的講就是除了第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;
}