[关闭]
@w616561153 2019-12-06T01:11:05.000000Z 字数 583 阅读 531
  1. #include <cstdio>
  2. #include <iostream>
  3. using namespace std;
  4. int cc[20] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024};
  5. int a[1050][1050], N;
  6. void print(int n)
  7. {
  8. int i, j;
  9. for(i = 1; i <= cc[n]; i ++){
  10. for(j = 1; j <= cc[n]; j ++)
  11. cout<<a[i][j]<<" ";
  12. cout<<endl;
  13. }
  14. }
  15. void solve(int n, int p)
  16. {
  17. int i, j;
  18. if(n == 0) return;
  19. for(i = 1; i <= cc[n - 1]; i ++)
  20. for(j = 1; j <= cc[n - 1]; j++)
  21. a[i + p][j + p] = 0;
  22. solve(n - 1, p + cc[n - 1]);
  23. for(i = 1; i <= cc[n - 1]; i ++)
  24. for(j = 1; j <= cc[n - 1]; j ++){
  25. a[p + cc[n - 1] + i][j + p] = a[i + p][p + cc[n - 1] + j] = a[p + cc[n - 1] + i][p + cc[n - 1] + j];
  26. }
  27. return ;
  28. }
  29. int main()
  30. {
  31. int n;
  32. scanf("%d", &N);
  33. n = N;
  34. for(int i = 1; i <= cc[n]; i ++)
  35. for(int j = 1; j <= cc[n]; j ++)
  36. a[i][j] = 1;
  37. solve(n, 0);
  38. print(n);
  39. return 0;
  40. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注