题解 | #蛇形矩阵#
蛇形矩阵
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;
}
查看19道真题和解析