比赛 随便比赛 评测结果 A
题目名称 分形 最终得分 100
用户昵称 flyfree 运行时间 0.387 s
代码语言 C++ 内存使用 7.75 MiB
提交时间 2024-08-27 20:06:43
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int mp[3010][3010],len[10],q;
int main(){
    freopen("fractal.in","r",stdin);
    freopen("fractal.out","w",stdout);
    len[1]=1;
    for(int i=2;i<=7;i++)len[i]=len[i-1]*3;
    mp[1][1]=1;
    for(int i=2;i<=7;i++){
        for(int x=1;x<=len[i-1];x++){
            for(int y=1;y<=len[i-1];y++){
                mp[len[i-1]*2+x][y]=mp[x][y];
                mp[len[i-1]+x][len[i-1]+y]=mp[x][y];
                mp[x][len[i-1]*2+y]=mp[x][y];
                mp[len[i-1]*2+x][len[i-1]*2+y]=mp[x][y];
            }
        }
    }
//    for(int i=1;i<=len[4];i++){
//        for(int j=1;j<=len[4];j++){
//            if(mp[i][j])cout<<"X";
//            else cout<<" ";
//        }
//        cout<<endl;
//    }
    while(cin>>q){
        if(q==-1)break;
        else{
            for(int i=1;i<=len[q];i++){
                for(int j=1;j<=len[q];j++){
                    if(mp[i][j])cout<<"X";
                    else cout<<" ";
                }
                cout<<endl;
            }
        }
        cout<<"-\n";
    }
    return 0;
}