要知道 暴力 可以解决一切简单问题!!!
这一题也不会例外。

原题链接:斐波纳契数列

解题思路:

1.我们要先了解一下,什么是斐波纳契数列:
  • 1,1,2,3,5,8,13,21,34,55,89……这个数列则称为“斐波纳契数列”,其中每个数字都是“斐波纳契数”。
我们可以很清晰的看出来规律从第三个数开始,之后每一个数等于前两个数字之和!

这是A掉这道题的关键。

2.我们知道了从第三个数开始有规律,所以就把前两个数字直接初始化,令前两个数字都为1。
3.我们用一个for暴力枚举每两个数字相加之和,先放到第三个数字中去,依次往后插入数组中。

代码如下:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a[100]={0}; //建立一维数组用来存储数字
  5. int n,i,j;
  6. while(scanf("%d",&n)!=EOF)
  7. {
  8. a[0]=1; //初始化前两个位置为1
  9. a[1]=1;
  10. for(i=2;i<n;i++)
  11. {
  12. a[i]=a[i-1]+a[i-2]; //第i个数字等于前两个数字之和
  13. }
  14. for(i=0;i<n;i++)
  15. {
  16. printf("%d ",a[i]);//记住每一个数字后输出一个空格
  17. }
  18. }
  19. return 0;
  20. }

由于作者能力有限,那里如果有不对的地方,衷心希望广大网友批评指正。
有问题可以留言哟。

点赞(1)
 

9 分

1 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

九九归一 4年前 回复TA
厉害呀