首页 > 代码库 > 洛谷——P1498 南蛮图腾

洛谷——P1498 南蛮图腾

https://www.luogu.org/problem/show?pid=1498

题目描述

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

输入输出格式

输入格式:

 

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

 

输出格式:

 

这个大小的图腾

 

输入输出样例

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

基础算法貌似不会诶~~


先给数组清成空格 方便
每当大小为1时,就构建三角
最后输出
size表示大小,x表示行,y表示列
 1 #include <algorithm> 2 #include <cstring> 3 #include <cstdio> 4  5 using namespace std; 6  7 int n; 8 char s[2333][2333]; 9 10 void DFS(int size,int x,int y)11 {12     if(size==1)13     {14         s[x][y]=s[x][y+1]=_;15         s[x][y-1]=s[x-1][y]=/;16         s[x][y+2]=s[x-1][y+1]=\\;17         return ;18     }19     int move=1<<size-1;20     DFS(size-1,x,y-move);21     DFS(size-1,x,y+move);22     DFS(size-1,x-move,y);23 }24 25 int main()26 {27     scanf("%d",&n);28     memset(s, ,sizeof(s));29     int n_=1<<n;30     DFS(n,n_,n_);31     for(int i=1;i<=n_;i++)32     {33         for(int j=1;j<=n_<<1;j++)34             printf("%c",s[i][j]);35         printf("\n");36     }37     return 0;38 }

 

洛谷——P1498 南蛮图腾