比赛 |
随便比赛 |
评测结果 |
A |
题目名称 |
分形 |
最终得分 |
100 |
用户昵称 |
徐诗畅 |
运行时间 |
0.437 s |
代码语言 |
C++ |
内存使用 |
5.53 MiB |
提交时间 |
2024-08-27 19:58:38 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,ans[755][755];
int nx[4]={2,1,0,2};
int ny[4]={0,1,2,2};
int num[8]={1,3,9,27,81,243,729,2187};
void dfs(int x){
if(x==1){ ans[1][1]=1; return;}
dfs(x-1);
for(int k=0;k<=3;k++){
for(int i = 1;i<=num[x-2];i++){
for(int j = 1;j<=num[x-2];j++){
ans[nx[k]*num[x-2]+i][ny[k]*num[x-2]+j]=ans[i][j];
}
}
}
}
int main(){
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
scanf("%d",&n);
while(n!=-1){
memset(ans,0,sizeof(ans));
dfs(n);
for(int i = 1;i<=num[n-1];i++){
for(int j = 1;j<=num[n-1];j++)
if(ans[i][j]) cout<<"X";
else cout<<" ";
cout<<endl;
}
cout<<"-\n";
scanf("%d",&n);
}
return 0;
}