此处作图,同的是相对的形,异的是顶点坐标
https://www.luogu.com.cn/problem/P1498
#include<iostream>
#include<cstring>
#include<algorithm>
#include<math.h>
#include<cmath>
#include<vector>
#include<queue>
#include<set>
#include<map>
#include<cstdio>
#include<string>//完整头文件
#include<ctime>
using namespace std;
char s[3005][3005];
void solve(int k,int x,int y)
{
if(k==1)
{
s[x][y]='/';
s[x+1][y-1]='/';
s[x][y+1]='\\';
s[x+1][y+2]='\\';
s[x+1][y]='_';
s[x+1][y+1]='_';
return ;
}
solve(k-1,x,y);
solve(k-1,x+pow(2,k-1),y-pow(2,k-1));
solve(k-1,x+pow(2,k-1),y+pow(2,k-1));
}
int main ()
{
int n;
cin>>n;
for(int i=1;i<=3000;++i)
for(int j=1;j<=3000;++j)
s[i][j]=' ';
solve(n,1,1024);
for(int i=1;i<=pow(2,n);++i)
{
for(int j=1024-pow(2,n)+1;j<=1024+pow(2,n);++j)
{
cout<<s[i][j];
}
cout<<endl;
}
return 0;
}