要求输入有多组数据,每组一个数字 n,代表输出含有 n 个层次的 X 图形( n<=7,当 n=-1结束)
如:
1:
X
X X
B(n - 1)
如:
1:
X
2
X XX
X X
.
.
.
B(n - 1) B(n - 1)B(n - 1)
B(n - 1) B(n - 1)
输出对应图形,每组输出后输出一个“-”
#include<stdio.h>
#include<math.h>
char map[3000][3000]={0};
void copy(int x,int y,int width){
int i,j;
for(i=0;i<width;i++)
for(j=0;j<width;j++)
map[x+i][y+j]=map[i][j];
}
void printX(int n){
int i,j,c;
c=pow((double)3,(double)(n-1));
for(i=0;i<c;i++){
for(j=0;j<c;j++){
if(map[i][j]==0)
printf("%c",' ');
else
printf("%c",'X');
}
printf("\n");
}
printf("%c\n",'-');
}
int main(){
map[0][0]='X';
int n,i,j;
for(i=0;i<6;i++){
j=pow((double)3,(double)i);
copy(0,2*j,j);
copy(j,j,j);
copy(2*j,0,j);
copy(2*j,2*j,j);
}
scanf("%d",&n);
while(n!=-1){
printX(n);
scanf("%d",&n);
}
return 0;
}