#include<stdio.h>
#include<iostream>
#include<cmath>
using namespace std;
char map[1250][2500]={32};
void p(int n){
int ll,mm;
ll=pow(2,n);mm=pow(2,n+1);
int i,j;
for(i=ll-1;i>=0;i--){
for(j=0;j<mm;j++){
printf("%c",map[i][j]);
}
printf("\n");
}
}
void write(int x,int y,int n){
if(n==1){
map[x+1][y]=' ';
map[x+1][y+1]='/';
map[x+1][y+2]='\\';
map[x][y]='/';
map[x][y+1]='_';
map[x][y+2]='_';
map[x][y+3]='\\';
return;
}
write(x,y,n-1);
write(x+pow(2,n-1),y+pow(2,n-1),n-1);
write(x,y+pow(2,n),n-1);
}
//string a="/\\",b="/__\\";
int main(){
int n,i;
cin>>n;
write(0,0,n);
//dfs(n);
p(n);
return 0;
}
兄弟们,无中生有,还是一个空字符,这是怎么回事啊。 我的代码毫无问题啊!