解题思路:  将数列分奇数列和偶数列,最大生长数其实就是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分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论