这是一道构造题,你需要多试试,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;
}
}

京公网安备 11010502036488号