如图(蓝色表示填1,白色表示填0)
n是偶数时填一下两个对角线
n是奇数时再填两个格子
代码
#include <iostream>
#include <cstring>
using namespace std;
const int N = 110;
int n;
int g[N][N];
int main()
{
int T;
scanf("%d", &T);
while (T -- )
{
scanf("%d", &n);
memset(g, 0, sizeof g);
for (int i = 1; i <= n; i ++ ) g[i][i] = g[i][n - i + 1] = 1;
if (n & 1) g[1][n + 1 >> 1] = g[n + 1 >> 1][1] = 1;
for (int i = 1; i <= n; i ++ )
{
for (int j = 1; j <= n; j ++ ) printf("%d ", g[i][j]);
puts("");
}
}
return 0;
}