原题链接:C语言训练-斐波纳契数列
要知道 暴力 可以解决一切简单问题!!!
这一题也不会例外。
原题链接:斐波纳契数列
解题思路:
1.我们要先了解一下,什么是斐波纳契数列:
- 1,1,2,3,5,8,13,21,34,55,89……这个数列则称为“斐波纳契数列”,其中每个数字都是“斐波纳契数”。
我们可以很清晰的看出来规律从第三个数开始,之后每一个数等于前两个数字之和!
这是A掉这道题的关键。
2.我们知道了从第三个数开始有规律,所以就把前两个数字直接初始化,令前两个数字都为1。
3.我们用一个for暴力枚举每两个数字相加之和,先放到第三个数字中去,依次往后插入数组中。
代码如下:
#include<stdio.h>
int main()
{
int a[100]={0}; //建立一维数组用来存储数字
int n,i,j;
while(scanf("%d",&n)!=EOF)
{
a[0]=1; //初始化前两个位置为1
a[1]=1;
for(i=2;i<n;i++)
{
a[i]=a[i-1]+a[i-2]; //第i个数字等于前两个数字之和
}
for(i=0;i<n;i++)
{
printf("%d ",a[i]);//记住每一个数字后输出一个空格
}
}
return 0;
}
由于作者能力有限,那里如果有不对的地方,衷心希望广大网友批评指正。
有问题可以留言哟。
9 分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复