《蛇形矩阵》题解

蛇形矩阵

http://www.nowcoder.com/questionTerminal/f228a074c5274619b26be544962375e1

首先分为2n-1次循环。每次循环会写入整个斜边的数字。斜边的方向有左下,右上。当循环次数k<=n时,当k为单数时,方向为右上,当k为双数时,方向为左下。当循环次数n<k<2*n-1时,当k为单数时,方向为右上,当k为双数时,方向为左下。

#include <stdio.h>
int main()
    {
        int n;
        scanf("%d",&n);
        int a[n][n];
        int i,k,j;
        int x=1;
        for(k=1;k<=2*n-1;k++)                //总共有7个斜边
           {
            if(k<=n)                        //前4个斜边
            {
                if(k%2==0)                            //如果斜边是双数次
                    {
                    for(i=0,j=k-1;j>=0;i++,j--)            //初始位置是a[0][k-1],由于是向左下移动,j碰壁的时候循环结束
                            a[i][j]=x++;

                    }
                else                                     //如果斜边是单数次
                    {
                        for(i=k-1,j=0;i>=0;j++,i--)    //初始位置是a[k-1][0],由于是向右上移动,i碰壁的时候循环结束
                            a[i][j]=x++;
                    }
            }

        else                             //后三个斜边
            {
                if(k%2==0)
                    {
                        for(i=k-n,j=n-1;i<n;j--,i++)            //初试位置a[k-n][n-1],由于向左下移动,i碰壁的时候停止循环
                            a[i][j]=x++;

                    }
                else 
                       { for(i=n-1,j=k-n;j<n;i--,j++)    //初始位置a[n-1][k-n],由于向右上移动,j碰壁的时候停止循环
                            a[i][j]=x++;}
            }
    }
for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    }
全部评论
这种方式好理解些
1 回复 分享
发布于 2023-10-14 21:31 重庆

相关推荐

26牛牛不会梦到感谢信:羡慕离职了还能吃吗现在就赶回去
点赞 评论 收藏
分享
双飞二本嵌入式求拷打我是在&nbsp;BOSS&nbsp;上投递的简历,好多都没人回复,这是开场白和简历求大神帮忙看看。您好!我是2025届应届生,最快可在一周内上岗,能够实习六个月以上,并接受加班。以下是我的核心优势和相关经验:1.&nbsp;嵌入式开发能力:&nbsp;&nbsp;&nbsp;熟练掌握STM32系列单片机及其外设(如GPIO、定时器、ADC、DAC、I2C、SPI、UART等),能够独立完成硬件驱动开发和调试。&nbsp;&nbsp;熟悉FreeRTOS实时操作系统,具备多任务调度和资源管理经验。&nbsp;&nbsp;熟悉LVGL图形库开发,能够实现嵌入式设备的图形界面设计。2.&nbsp;硬件设计能力:&nbsp;&nbsp;&nbsp;具备PCB设计经验,曾为2023年工创赛物流搬运赛道设计小车主板,带领团队获得国家级银奖。&nbsp;&nbsp;&nbsp;熟悉硬件原理图分析,能够快速理解并调试硬件电路。3.&nbsp;机器人开发与竞赛经验:&nbsp;&nbsp;&nbsp;在全国大学生智能车竞赛、ROS机器人竞赛中多次获得国家级奖项,具备丰富的机器人开发经验。&nbsp;&nbsp;&nbsp;熟悉Linux环境,对ROS和ROS&nbsp;2有一定了解,能够进行机器人系统的开发与调试。4.&nbsp;编程能力:&nbsp;&nbsp;&nbsp;熟悉C/C++,熟悉Python,能够高效完成嵌入式开发和算法实现。&nbsp;&nbsp;&nbsp;具备良好的代码规范和文档编写能力。5.&nbsp;团队协作与领导能力:&nbsp;&nbsp;&nbsp;在多个项目中担任核心开发或团队负责人,具备良好的沟通能力和团队协作精神。&nbsp;&nbsp;&nbsp;在工创赛中带领团队完成项目规划、任务分配和技术攻关,展现了较强的领导力。我对嵌入式开发、机器人技术和智能硬件充满热情,期待加入贵公司,与团队共同成长,为公司创造价值!如果有合适的岗位,欢迎随时联系我,期待进一步沟通!
沉淀一会:嵌入式就是狗屎
点赞 评论 收藏
分享
sagima:然后这个帖子又登上了
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务