Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 19(13 users) Total Accepted: 13(12 users) Rating:  Special Judge: No
Description

DS最近很囧,总是不能把妹子哄开心。所以,邪恶的他也想让你们囧一囧。


他给你一个数字 n 让你输出囧字的迭代(详见样例)。

Input

第一行一个整数,代表数据的组数。

每组数据一个整数 n1≤n≤7

Output

每组数据输出一个囧字的图形.

Sample Input
2
1
2
Sample Output
+------+
|      |
| /   |
|      |
| +--+ |
| |  | |
| |  | |
+-+--+-+
+--------------+
|              |
|     /       |
|    /        |
|   /         |
|  /          |
| /           |
|              |
|   +------+   |
|   |      |   |
|   | /   |   |
|   |      |   |
|   | +--+ |   |
|   | |  | |   |
|   | |  | |   |
+---+-+--+-+---+
Hint

再友情给个n = 3 的样例,请注意囧字的迭代方式。

+------------------------------+

|                              |

|             /               |

|            /                |

|           /                 |

|          /                  |

|         /                   |

|        /                    |

|       /                     |

|      /                      |

|     /                       |

|    /                        |

|   /                         |

|  /                          |

| /                          |

|                              |

|       +--------------+       |

|       |              |       |

|       |     /       |       |

|       |    /        |       |

|       |   /         |       |

|       |  /          |       |

|       | /          |       |

|       |              |       |

|       |   +------+   |       |

|       |   |      |   |       |

|       |   | /  |   |       |

|       |   |      |   |       |

|       |   | +--+ |   |       |

|       |   | |  | |   |       |

|       |   | |  | |   |       |

+-------+---+-+--+-+---+-------+

Source
哈尔滨理工大学第四届ACM程序设计竞赛(同步赛)
 1 #include <iostream>
 2 #include <string.h>
 3 #include <stdio.h>
 4 #include <math.h>
 5 using namespace std;
 6 
 7 const int maxn=1000;
 8 char a[maxn][maxn];
 9 
10 void get_zheng(int x0,int y0,long long int len)
11 {
12     a[x0][y0]=a[x0+len-1][y0]=a[x0][y0+len-1]=a[x0+len-1][y0+len-1]='+';
13     for(int i=x0+1;i<=x0+len-2;i++)
14         a[i][y0]=a[i][y0+len-1]='|';
15     for(int j=y0+1;j<=y0+len-2;j++)
16         a[x0][j]=a[x0+len-1][j]='-';
17     int k=y0+len/2-2;
18     int l=y0+len/2+1;
19     for(int i=x0+2;i<=x0+len/2-2;i++)
20     {
21         a[i][k--]='/';
22         a[i][l++]='\';
23     }
24 }
25 
26 void solve(int n)
27 {
28      long long int len=8*(1<<(n-1));
29      int x0=0;
30      int y0=0;
31      while(len>=4)
32      {
33          get_zheng(x0,y0,len);
34          x0+=len/2;
35          y0+=len/4;
36          len/=2;
37      }
38 }
39 
40 int main()
41 {
42     int t;
43     scanf("%d",&t);
44     while(t--){
45         int n;
46         scanf("%d",&n);
47         long long int len=8*pow(2.0,n-1);
48         memset(a,' ',sizeof(a));
49         solve(n);
50         for(int i=0;i<len;i++)
51         {
52             for(int j=0;j<len;j++)
53             {
54                 printf("%c",a[i][j]);
55             }
56           printf("
");
57         }
58     }
59     return 0;
60 }
View Code
原文地址:https://www.cnblogs.com/zhanzhao/p/3638052.html