比赛 |
随便比赛 |
评测结果 |
A |
题目名称 |
分形 |
最终得分 |
100 |
用户昵称 |
郑霁桓 |
运行时间 |
0.242 s |
代码语言 |
C++ |
内存使用 |
5.04 MiB |
提交时间 |
2024-08-27 20:27:20 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,p,t;
bool b[1005][1005],a[8][905][905];
void ff(long long x,long long y){
for(int i=0;i<p;i++){
for(int j=0;j<p;j++){
b[x+i][y+j]=b[i][j];
}
}
return;
}
void f(long long x){
if(x==1){
b[0][0]=1;
p=t=1;
a[1][0][0]=1;
return;
}
f(x-1);
t++;
ff(0,2*p);
ff(p,p);
ff(2*p,0);
ff(2*p,2*p);
for(int i=0;i<3*p;i++){
for(int j=0;j<3*p;j++){
a[t][i][j]=b[i][j];
}
}
p*=3;
}
int main(){
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
f(7);
while(1){
scanf("%lld",&n);
if(n==-1){
return 0;
}
f(n);
for(int i=0;i<p;i++){
for(int j=0;j<p;j++){
if(a[n][i][j]){
printf("X");
}else{
printf(" ");
}
}
printf("\n");
}
printf("-\n");
}
return 0;
}