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("\n");
57         }
58     }
59     return 0;
60 }
View Code

 

posted @ 2014-04-01 13:06  悠悠我心。  阅读(196)  评论(0编辑  收藏  举报