C语言----两种方法用C语言代码实现斐波那契数列
方法一:调用函数(递归)
#include<stdio.h>
int fac(int n)//递归函数 
{
	int res;
	if(n==1||n==2)//前两项是 1 如果没有{},那么默认执行其后面跟着的一条语句 
	return 1;
	return res=fac(n-1)+fac(n-2);//实行递归,第三项开始是第二项的值加第一项 
}
int main()
{
	int n,ans;//n代表第n项 
	scanf("%d",&n);
	ans=fac(n)%10000;//调用递归函数 
	printf("%d",ans);
	return 0;//有局限,到第40项以后会算的特别慢,更大之后可能因为值的溢出所以不出结果了 
}
第47项后值溢出 变为负数
方法二:(递推)
#include<stdio.h>
int main()
{
	int n,ans,i;
	int a=1,b=1,c=0;//a , b 分别为第一 二项,C为第三项 
	scanf("%d",&n);
	for(i=3;i<=n;i++)
	{
		c=a+b;//a,b,c的值开始逐个推换 
		a=b;
		b=c;
	}
	printf("%d",c);
	return 0;
 }
补充:如果是求第xxxxxxxxx项的后四位数字,即可在for循环里添加:
if(c>10000)
		{
			a%=10000;
			b%=10000;
			c%=10000;
		}
但是如果千位为0;那么只输出三位数字
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号