发布时间:2019-07-29 18:01:45
```cpp
#include <cstdio>
int a[10000][10000] = {0}, n, i, j, t, plus = 1;
int main() {
//freopen("5068.in","r",stdin);
//freopen("5068.out","w",stdout);
a[0][0] = 1;
scanf("%d",&n);
t = n;
while(t) {
for(i = 0; i < plus; ++i)
for(j = 0; j < plus; ++j)
a[i][j+plus]=a[i][j]+plus;
for(i = 0; i < plus; ++i)
for(j = 0; j < plus; ++j) {
a[i+plus][j]=a[i][j+plus];
a[i+plus][j+plus]=a[i][j];
}
plus *= 2;
--t;
}
for(i = 0; i < n; ++i) {
//printf("%d:",a[i-1][0]);
for(j = 0; j < n; ++j) {
if(j == 0)printf("%d:",a[i][j]);
elseprintf("%2d",a[i][j]);
}
printf("\n");
}
return 0;
}
```
明显的算法问题,当输入为16时,下标溢出了