先 分 析 样 例 , 对 于 n = 4 的 情 况 先分析样例,对于n=4的情况 先分析样例,对于n=4的情况
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
这
种
情
况
刚
好
每
行
每
列
都
等
于
0
这种情况刚好每行每列都等于0
这种情况刚好每行每列都等于0
既
然
这
样
,
我
们
可
以
让
每
个
4
∗
4
的
小
矩
阵
都
由
这
个
矩
阵
加
上
某
个
数
生
成
既然这样,我们可以让每个4*4的小矩阵都由这个矩阵加上某个数生成
既然这样,我们可以让每个4∗4的小矩阵都由这个矩阵加上某个数生成
这 样 满 足 每 个 小 矩 阵 为 0 , 大 矩 阵 异 或 后 还 是 0 这样满足每个小矩阵为0,大矩阵异或后还是0 这样满足每个小矩阵为0,大矩阵异或后还是0
#include <bits/stdc++.h>
using namespace std;
int a[1009][1009],k=0,n;
int find(int i,int j){
return (n/4)*(i/4)+j/4;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<find(i,j)*16+i%4*4+j%4<<" ";
cout<<endl;
}
}