• P1498 南蛮图腾


    P1498 南蛮图腾

    题目描述

    自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果(看Hint),在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独不会画他们的图腾,于是他找上了你的爷爷的爷爷的爷爷的爷爷……帮忙,作为一个好孙子的孙子的孙子的孙子……你能做到吗?

    输入输出格式

    输入格式:

    每个数据一个数字,表示图腾的大小(此大小非彼大小) n<=10

    输出格式:

    这个大小的图腾

    输入输出样例

    输入样例#1:
    2
    输出样例#1:
       /
      /__
     /  /
    /__/__
    
    输入样例#2:
    3
    输出样例#2:
           /
          /__
         /  /
        /__/__
       /      /
      /__    /__
     /  /  /  /
    /__/__/__/__

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 using namespace std;
     5 
     6 char a[2100][2100];
     7 void dfs(int len,int x,int y,int base){
     8     //len表示当前“分形”大小,x,y表示上述中点,base表示该“分形”前面的空格数
     9     if(len==1){
    10         a[x][y]='_';
    11         a[x][y+1]='_';
    12         a[x][y-1]='/';
    13         a[x][y+2]='\';
    14         a[x-1][y]='/';
    15         a[x-1][y+1]='\';
    16         return;
    17     }
    18     int tmp=1<<len-1;
    19     dfs(len-1,x,base+y>>1,base);//搜左下子“分形”
    20     dfs(len-1,x,y+tmp,base+(tmp<<1));//搜右下子“分形”
    21     dfs(len-1,x-tmp,y,base+tmp);//搜上子“分形
    22 }
    23 
    24 int main()
    25 {
    26     int n;
    27     cin>>n;
    28     memset(a,' ',sizeof(a));
    29     int m = 1<<n;
    30     dfs(n,m,m,0);
    31     for (int i=1; i<=m; i++){
    32         for (int j=1; j<=m<<1; j++)
    33             cout<<a[i][j];
    34         cout<<endl;
    35     }
    36     return 0;
    37 }
  • 相关阅读:
    JAVA-初步认识-第十一章-异常-原理异常对象的抛出throw
    shopex后台上传模板漏洞
    PHP使用1个crontab管理多个crontab任务
    HTML5跨浏览器表单及HTML5表单的渐进增强
    用Opera Mobile调试手机版网页【转】
    mootools里选择器$,$$,$E,$ES等的区别
    Call to undefined function bcscale()
    阿里云服务器数据库配置
    阿里云Mysql重置密码
    window.open窗口关闭后刷新父窗口代码
  • 原文地址:https://www.cnblogs.com/mjtcn/p/7115416.html
Copyright © 2020-2023  润新知