题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/f228a074c5274619b26be544962375e1
#include <stdio.h> int main() { int i=0,j,x=0,y=1,flag=1,n,num=2; scanf("%d",&n); int a[20][20]={1}; for(i=2;i<n+1;i++) { if(flag) { for(j=0;j<i;j++) { a[x++][y--]=num++; } y++; } if(!flag) { for(j=0;j<i;j++) { a[x--][y++]=num++; } x++; } flag=!flag; } if(flag) x++,y--; else x--,y++; for(i=n-1;i>0;i--) { if(flag) { for(j=0;j<i;j++) { a[x++][y--]=num++; } y+=2,x--; } if(!flag) { for(j=0;j<i;j++) { a[x--][y++]=num++; } x+=2,y--; } flag=!flag; } for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%d ",a[i][j]); printf("\n"); } return 0; }