题解 | #蛇形矩阵#
蛇形矩阵
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; }