题解 | #回型矩阵#
回型矩阵
https://www.nowcoder.com/practice/36d5dfddc22c4f5b88a5b2a9de7db343
#include <stdio.h>
int main() {
int n, i, a[20][20];
scanf("%d", &n);
int count = 0;
int s = 0, f = n - 1;
while (count < n * n) {
for (i = s; i <= f; i++) //左 --> 右
a[s][i] = ++count;
for (i = s + 1; i <= f; i++) //上 --> 下
a[i][f] = ++count;
for (i = f - 1; i >= s; i--) //右 --> 左
a[f][i] = ++count;
for (i = f - 1; i >= s + 1; i--) //下 --> 上
a[i][s] = ++count;
s++;
f--; //缩
}
for (i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
