这是一道构造题,你需要多试试,enmm.....如果你试过了,你会发现 00 01

000 011 010

0000 0111 0100 0101

00000 01111 01000 01011 01010

这个形状很有趣啊,是个L,仔细想想很合理啊,刚好可以做到某行或者某列的数字和为n-1到n,接下来,就是找规律了,有很多写法吧,其中一个是i,j的奇偶性,你仔细观察会发现第二列和第二行有规律

#include<bits/stdc++.h>

using namespace std;

int main(){
    int n;
    cin >> n;
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= n; j++){
            cout << "10"[min(i, j) & 1];//取 i和j里面小的数字,看是奇数还是偶数,&1是指取二进制最后一位,如果是0,那么输出1,如果是1输出0
        }
        cout << endl;
    }
}