循环控制~17 斐波那契数列
题目描述:
K=1,1,2,3,5,8,13,21...
输入:
输入一行,包含一个正整数k。(1 <= k <= 46)
输出:
输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小
1 #include<stdio.h> 2 int main(){ 3 int n; //求第几个数的斐波那契数列 4 scanf("%d",&n); 5 int tem[10000]; 6 tem[1]=1,tem[2]=1; 7 int n1=1,n2=1,n3=2; //第一第二个数都为1,n1n2n3三个数已确定 8 if(n==1 || n==2){ 9 printf("1"); 10 } 11 // else if(n==3){ 12 // printf("2"); 13 // } 14 else{ 15 for(int i=3;i<=n;i++){ 16 tem[i]=tem[i-1]+tem[i-2]; 17 } 18 printf("%d",tem[n]); 19 } 20 return 0; 21 }
soulution:
1 思路:设置一个数组来存放求的结果之前的中间数,使得第一第二个数组赋初值为1,1~中间值从第三个开始算起:tem[i]=tem[i-1]+tem[i-2]
2segmentation fault:
刚开始tem给了[100]作为数组,后来不够数组越界,因为存的是中间值所以应该尽量大
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程