C语言递归求斐波那契数列

  • Post author:
  • Post category:其他


斐波那契数列指的是这样一个数列:1,1,2,3,5,8, 13, 21, 34, 55, 89, 144, …

通过观察我们发现,该数列的规律为:从第三个数开始,每一个数等于前两个数之和。

递归求斐波那契数列:

#include<stdio.h>
int fun(int n)
{
	if(n==1||n==2)//通过数列的规律发现,前两项都为1,作为递归的终止条件
	{
		return 1;
	}
	else
	{
		return fun(n-1)+fun(n-2);//要求第n项,就是求n-1项和n-2项的和
	}
}
int main()
{
	int i,n;
	printf("请输入你要打印的斐波那契数列项数:\n");
	scanf("%d",&n);//n为打印的项数
	printf("斐波那契数列:");
	for(i=1;i<=n;i++)
	{
		printf("%d ",fun(i));//fun函数返回的是第i项,所以用for循环打印每一项
	}
	return 0;
}

输出结果:



版权声明:本文为Cgs723原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。