我们观察给出的案例可以看出,右侧和下侧全是1,但是除此之外就有一个规律:每一个位置的数都等于上面一个和上面一个的右边一个的异或结果(异或:1和1是0,0和0是0,0和1是1,1和0是1)以下是部分源码
希望指正不足
int arr[1025][1025] = { 0 };//全局变量
N = 1 << n;用位移运算符来算幂,很方便
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (i == N - 1 || j == N - 1) {
//cout << "i=" << i << " j=" << j << " N-1=" << N << endl;
arr[i][j] = 1;
}
else if(i!=0&&j!=N-1){ //访问第一行的上一行会出问题,所以排除一下,反正也没影响
arr[i][j] = arr[i - 1][j] ^ arr[i - 1][j + 1];
}
}
}
最后再打印出来就好了