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;那么只输出三位数字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!