#include <stdio.h>
const int N = 9;
int P[N][N];
void _fill(int number, int bgn, int sz) {
int i = 0, h = bgn, v = bgn;
if (sz == 0)
return;
else if (sz == 1) {
P[bgn][bgn] = number;
return;
}
P[h][v] = number;
number++;
for (i = 0; i < sz - 1; i++) {
h++;
P[h][v] = number;
number++;
}
for (i = 0; i < sz - 1; i++) {
v++;
P[h][v] = number;
number++;
}
for (i = 0; i < sz - 1; i++) {
h--;
P[h][v] = number;
number++;
}
for (i = 0; i < sz - 2; i++) {
v--;
P[h][v] = number;
number++;
}
_fill(number, v, sz - 2);
}
int main() {
int h, v;
_fill(1, 0, N);
for (h = 0; h < N; h++) {
for (v = 0; v < N; v++)
printf("%d\t", P[h][v]);
putchar('\n');
}
return 0;
}
数字旋转方阵
最新推荐文章于 2022-03-28 20:13:00 发布