题解 | #蛇形矩阵#

蛇形矩阵

https://www.nowcoder.com/practice/f228a074c5274619b26be544962375e1

#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);
    int a[1000][1000];
    int k=1;
    int p=0,q=0;
    int cnt=0,j=-1,i=-1;
    while(k<=n*n)
    {
        for(i=i+1;i>=p;i--)
        {
            j=cnt-i;
            a[i][j]=k++;
        }
        cnt++;
        if(j==n-1)
        {
           j--;
           q++;
           p++;
        }
        for(j=j+1;j>=q;j--)
        {
            i=cnt-j;
            a[i][j]=k++;
        }
        cnt++;
        if(i==n-1)
        {
            p++;
            q++;
            i--;
        }
        
        

    }
    for(i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
            printf("%d ",a[i][j]);
        putchar('\n');
    }
    return 0;
}

全部评论

相关推荐

零OFFER战士:另一个版本查看图片
点赞 评论 收藏
分享
06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务