#0x08 分形 (分形)

题解

  • 假如k-1的图我们知道,那么得到k的图,相当于就是将k-1的图再复制4次,具体见代码。

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MA=1010;

int a[MA][MA];

void change(int k){
    if(k==1) {
        a[1][1]=1;
        return ;
    }
    change(k-1);
    int len=pow(3,k-2);
    for(int i=1;i<=len;++i){
        for(int j=1;j<=len;++j){
            a[i][2*len+j]=a[i][j];
            a[len+i][len+j]=a[i][j];
            a[2*len+i][j]=a[i][j];
            a[2*len+i][2*len+j]=a[i][j];
        }
    }
}

int main()
{
    change(7);
    int n;
    while(scanf("%d",&n)&&n!=-1){
        int len=pow(3,n-1);
        for(int i=1;i<=len;++i){
            for(int j=1;j<=len;++j){
                if(a[i][j])printf("X");
                else printf(" ");
            }
            printf("\n");
        }
        printf("-\n");
    }
    return 0;
}


posted @ 2020-02-04 12:06  A_sc  阅读(147)  评论(0)    收藏  举报