题意:
- 中央区块完全由白色单元格组成。
- 其他八个区块是 (𝐾−1)(K−1) 级地毯。
给你一个非负整数 N 。
请按照指定格式打印 N 级地毯。
分析:先把地毯分成九块
除了中间那块,其它都是由左上角那块延申出来的
#include<bits/stdc++.h>
using namespace std;
char a[1000][1000];
int main(){
int n;cin>>n;
a[1][1]='#'; int c=1;
for(int i=1;i<=pow(3,n);i++){
a[i][0]='#';a[0][i]='#';
}
for(int z=1;z<=n;z++){
c*=3;
for(int i=1;i<=c;i++){
for(int j=1;j<=c;j++){
if(i>c/3||j>c/3){//除了左上角那块
if((i>c/3&&i<=2*(c/3))&&(j>c/3&&j<=2*(c/3))){//中间那块
a[i][j]='.';
}
else if(i<=c/3&&j>c/3){
a[i][j]=a[i][j%(c/3)];
}
else a[i][j]=a[i%(c/3)][j];
}
}
}
}
for(int i=1;i<=c;i++){
for(int j=1;j<=c;j++){
cout<<a[i][j];
}
cout<<endl;
}
return 0;
}