题解 | #蛇形矩阵#

蛇形矩阵

https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

#include <stdio.h>
#include <stdlib.h>

int main() {
    int n;
    int matrix[100][100] = {0};
    int preFirstColi = 0;   //存储第一列的上一次更新的的i,作为起始位置
    scanf("%d", &n);
    for(int j=0, i=0, cur=1; ; cur++){//ij为矩阵的索引, cur为递增的自然数
        
        matrix[i][j] = cur;     //将cur放入矩阵,
        if(i==0){               //当递增到第一行
            if(j == n-1)            //判断是否已经到目标的n次,如是则退出
                break;
            preFirstColi++;         //不是则更新起始位置
            i=preFirstColi;         //更新ij
            j=0;
        }else{                  //普通递增,则i-1, j+1
            i--;
            j++;
        }
    }

    for(int i=0; i<100; i++){       //打印
        for(int j=0; j<100; j++){
            if(matrix[i][j]==0)
                break;
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
    return 0;
}

全部评论

相关推荐

05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务