比赛 随便比赛 评测结果 W
题目名称 分形 最终得分 0
用户昵称 健康铀 运行时间 0.083 s
代码语言 C++ 内存使用 6.23 MiB
提交时间 2024-08-27 19:40:59
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,s[1010][1010];
int k1[7]={0,1,3,9,27,81,243};
int main(){
    freopen("fractal.in","r",stdin);
    freopen("fractal.out","w",stdout);
    s[1][1]=1;
    for(int k=1;k<=243;k*=3){
        for(int i=1;i<=k;i++){
            for(int j=1;j<=k;j++){
                if(s[i][j]==1){
                    s[i][j+k*2]=s[i+k][j+k]=s[i+k*2][j]=s[i+k*2][j+k*2]=1;
                }
            }
        }
    }
    while(cin>>n){
        if(n==-1)
        break;
        int k=k1[n];
        for(int i=1;i<=k;i++){
            for(int j=1;j<=k;j++){
                if(s[i][j]==1)
                cout<<"X";
                else
                cout<<" ";
            }
            cout<<endl;
        }
        cout<<"-"<<endl;
    }
    return 0;
}