解题思路: 将数列分奇数列和偶数列,最大生长数其实就是2*m-2,也就是循环一次即可,而数列两边实对称的,由此可得。
注意事项: 注意m在循环中的取值,切记数组底数
从零开始
参考代码:
#include<stdio.h>
int main()
{
int x,a,b,n,m;
scanf("%d",&n);
int q[10000];
if(n%2==0)
{
m=n/2-1; //这是判断奇数列还是偶数列//
}
else{
m=n/2-1;
}
for(x=0;x<n;x++)
{
q[x]=0;
}
for(x=n-1;x>m;x--)
{
q[x]=2*(x+1)-2; //此处是先求出对称右半部分的结果,应为只有右半部分下标可以求出结果,最后只需将其对称至左半部分即可//
}
int* p=q;
p+=n-1;
for(x=0;x<m+1;x++) //通过指针将右半部分对称//
{
q[x]=*p;
--p;
}
for(x=0;x<n;x++)
{
printf("%d\n",q[x]);
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复