递归画图输出,也算是个模板吧
ti
#include<bits/stdc++.h>
using namespace std;
int n;
char mo[7][7];
char pic[3005][3005];
void draw(int q, int x, int y){
if(q == 1){
for(int i = 0; i < n; i ++ ){
for(int j = 0; j < n; j ++ ){
pic[x + i][y + j] = mo[i][j];
}
}
return ;
}
else{
int len = pow(n, q - 1);
for(int i = 0; i < n; i ++ ){
for(int j = 0; j < n; j ++ ){
if(mo[i][j] != ' '){
draw(q - 1, x + i * len, y + j * len);
}
}
}
return ;
}
}
int main()
{
while(cin>>n){
if(n == 0) break;
getchar();
//memset(mo, ' ', sizeof(mo));
for(int i = 0; i < 3005; i ++ ){
for(int j = 0; j < 3005; j ++ ){
pic[i][j] = ' ';
}
}
for(int i = 0; i < n; i ++ ){
for(int j = 0; j < n; j ++ ){
mo[i][j] = getchar();
}
getchar();
}
int q;
cin>>q;
int size = pow(n, q);
draw(q, 0, 0);
for(int i = 0; i < size; i ++ ){
for(int j = 0; j < size; j ++ ){
cout<<pic[i][j];
}
cout<<endl;
}
}
return 0;
}