10 分求调
# include <bits/stdc++.h>
using namespace std;
int a[50][50];
int main()
{
int n;
cin >> n;
a[1][(n + 1) / 2] = 1;
int x = 1,y = (n + 1) / 2;
for (int i = 2;i <= n * n;i++)
{
int nx,ny;
if (x == 1 && y != n)
{
nx = n;
ny = y + 1;
}
else if (x != 1 && y == n)
{
nx = x - 1;
ny = 1;
}
else if (x == 1 && y == n )
{
nx = x + 1;
ny = ny;
}
else
{
if (!(a[x - 1][y + 1]))
{
nx = x - 1;
ny = y + 1;
}
else
{
nx = x - 1;
ny = y;
}
}
a[nx][ny] = i;
x = nx,y = ny;
}
for (int i = 1;i <= n;i++)
{
for (int j = 1;j <= n;j++)
cout << a[i][j] << ' ';
cout << endl;
}
return 0;
}
第 3 个测试点正确(配数据)
输入
1
输出
1
有人会错吗?