其他分享
首页 > 其他分享> > 递归和非递归求第n个斐波那契数

递归和非递归求第n个斐波那契数

作者:互联网

问题描述:

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

源代码: 

#include <stdio.h>
#pragma warning (disable : 4996)
#include <windows.h>

int fib1(int n)//递归
{
	if (n <= 2)
	{
		return 1;
	}
	return fib1(n - 1) + fib1(n - 2);
}

int fib2(int n)//迭代,非递归
{
	int a = 1;
	int b = 1;
	int c = 1;
	while (n > 2)
	{
		c = a + b;
		a = b;
		b = c;
		n--;
	}
	return c;
}

int main()
{
	int n = 0;
	printf("请输入要查询的数:");
	scanf("%d", &n);
	int num = fib2(n);
	printf("结果是:%d\n",num);
	system("pause");
	return 0;
}

注:代码中分别用递归和迭代写了两个函数,可以分别调用,都能实现功能,但很显然迭代代码就比较繁琐

运行情况:

标签:契数,递归,int,个斐波,num,printf
来源: https://blog.csdn.net/lexiaoyao_0000/article/details/90239069