C语言:递归和非递归分别实现求第n个斐波那契数。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include "stdlib.h"
//考虑两种情况,第一种n<=2时,直接返回的是1
int  fib(int n)
{
	if (n <= 2)
		return 1;
	else
		return fib(n - 1) + fib(n - 2);
}
//非递归实现 1  1  2  3  5  8  12...

//int fib(int n)

//{

//	int a = 1;

//	int b = 1;

//	int c = 1;

//	int i = 0;

//	for (i = 0; i < n - 2; i++)

//	{

//		c = a + b;

//		a = b;

//		b = c;

//	}

//	return c;

//}

int main()
{
	int n = 0;
	int ret = 0;
	printf("输入打印的个数: ");
	scanf("%d", &n);
	ret = fib(n);
	printf("第%d个数是:%d\n",n, fib(n));
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43220266/article/details/83241891