分形小山

原题洛谷P1498。

#include<cstdio>
#include<iostream>
using namespace std; 
int n,f[1050][1050],ly;
void init(){
    scanf("%d",&n);
    ly=1<<n;
    for(int i=1;i<=1<<n;i++){
        f[i][1]=f[i][i]=1;
    }
    for(int i=3;i<=1<<n;i++){
        for(int j=2;j<i;j++){
            f[i][j]=f[i-1][j-1]+f[i-1][j];
            f[i][j]%=2;
        }
    }
    return;
}
int main(){
    init();
    for(int i=1;i<=1<<n;i++){
        for(int j=0;j<ly-i;j++) cout<<' ';
        bool flag=0;
        for(int j=1;j<=i;j++){
            if(f[i][j]%2==1){
                if(i%2==1) cout<<"/"<<(char)92;
                else{
                    if(flag==0){
                        cout<<"/_";
                        flag=1;
                    }
                    else{
                        cout<<"_"<<(char)92;
                        flag=0;
                    }
                }
            }
            else cout<<"  ";
        }
        cout<<endl;
    }
    return 0;
}
分形小山

 

posted @ 2018-01-25 20:21  Halifuda  阅读(153)  评论(0编辑  收藏  举报