直接放代码吧,以前写的,十分暴力
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int w[100][100];
int main()
{
int n;
scanf("%d",&n);
w[1][n/2+1] = 1;
for(int i = 2; i <= n *n; i ++)
{
for(int j = 1; j <= n; j ++)
{
for(int k = 1; k <= n; k ++)
{
if(w[1][k] == (i-1)&& (k != n))
{
w[n][k+1] = i;
}
else if(w[j][n] == (i-1) && j != 1)
{
w[j-1][1] = i;
}
else if(w[1][n] ==(i-1))
{
w[2][n] = i;
}
else if(w[j][k] == (i-1) && j > 1 && k < n)
{
if(w[j-1][k+1] == 0)
w[j-1][k+1] = i;
else
w[j+1][k] = i;
}
}
}
}
for(int i = 1; i <= n; i ++)
{
for(int j = 1; j <= n; j ++)
{
printf("%d ",w[i][j]);
}
puts(" ");
}
return 0;
}