|
|
|
@ -1,10 +1,31 @@
|
|
|
|
|
#include <bits/stdc++.h>
|
|
|
|
|
using namespace std;
|
|
|
|
|
const int N = 110;
|
|
|
|
|
int dx[] = {0, 1, 0, -1}; // 右下左上
|
|
|
|
|
int dy[] = {1, 0, -1, 0}; // 右下左上
|
|
|
|
|
int a[N][N];
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
for (int a = INT_MIN; a <= INT_MAX; a++) {
|
|
|
|
|
if (a * 2 / 2 != a)
|
|
|
|
|
cout << a << endl;
|
|
|
|
|
int n = 5, m = n * n;
|
|
|
|
|
|
|
|
|
|
int idx = 1;
|
|
|
|
|
int x = 0, y = 0, p = 0;
|
|
|
|
|
while (idx <= m) {
|
|
|
|
|
a[x][y] = idx; //
|
|
|
|
|
idx++; // 值在长大
|
|
|
|
|
// p是说方向数组中的游标,它是需要变化的,什么情况下变化呢?
|
|
|
|
|
// 1、出界了就变化
|
|
|
|
|
if (x + dx[p] >= n || y + dy[p] >= n || a[x + dx[p]][y + dy[p]])
|
|
|
|
|
p = (p + 1) % 4;
|
|
|
|
|
|
|
|
|
|
// 下一个坐标位置
|
|
|
|
|
x += dx[p], y += dy[p];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < n; i++) {
|
|
|
|
|
for (int j = 0; j < n; j++)
|
|
|
|
|
printf("%3d", a[i][j]);
|
|
|
|
|
cout << endl;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|