更正:
WA点4代码:应输出' '但检测到'/'
```
#include<iostream>
#include<algorithm>
using namespace std;
int n;
#define getit(A,i) ((A >> (i << 1)) & 3)
int main()
{
cin >> n;
unsigned long long A = 1;
n = 1 << n;
for(int k = 1;k <= n;k++)
{
for(int i = 1;i <= n - k;i++)
cout << " ";
for(int i = 0;i <= (k-1)/2;i++)
if(getit(A,i) == 1)
cout << "/\\ ";
else if(getit(A,i) == 0)
cout << " ";
else if(getit(A,i) == 3)
cout << "/__\\";
cout << endl;
A = (A << 1) ^ A;
}
}
```
by 升阳 @ 2021-07-16 21:08:50
请大佬换个思路,看看这样行不行
```
#include <bits/stdc++.h>
using namespace std;
char a[2000][4000];
void draw(int r, int c, int i)
{
if(i == 1)
{
a[r][c] = '/';
a[r][c + 1] = '_';
a[r][c + 2] = '_';
a[r][c + 3] = '\\';
a[r - 1][c + 1] = '/';
a[r - 1][c + 2] = '\\';
return;
}
draw(r, c, i - 1);
draw(r, c + pow(2, i), i - 1);
draw(r - pow(2, i - 1), c + pow(2, i) / 2, i - 1);
return;
}
int main()
{
int n;
cin >> n;
int m = pow(2, n);
memset(a, 0, sizeof(a));
draw(m, 1, n);
for(int i = 1; i <= m; i ++)
{
for(int j = 1; j <= 2 * m; j ++)
{
if (a[i][j] == 0)
{
cout << " ";
}
else
{
cout << a[i][j];
}
}
cout << endl;
}
return 0;
}
```
by chenyitian @ 2021-08-10 22:33:59