poj2083 Fractal

我一开始的想法是间断性的输出空格和solve(k-1)

但是发现问题很大。

雨菲:可以用一个数组保存啊

我:那不爆了?

雨菲:不会爆。

我一算:729 × 729,还真没爆。

然后就直接WA了......

仔细观察,发现要输出X,而我输出x

然后就A了。

大水题。

 

 1 #include <cstdio>
 2 /** 
 3 made with Unity 
 4 poj 2083
 5 */
 6 using namespace std;
 7 const int N = 729;
 8 char G[N][N];
 9 inline int pow(int a, int b) {
10     int ans = 1;
11     for(int i = 1; i <= b; i++) {
12         ans *= a;
13     }
14     return ans;
15 }
16 
17 void solve(int k, int x, int y) {
18     if(k == 1) {
19         G[x][y] = 'X';
20         return;
21     }
22     int len = pow(3, k - 2);
23     solve(k - 1, x, y);
24     solve(k - 1, x + 2 * len, y);
25     solve(k - 1, x + 2 * len, y + 2 * len);
26     solve(k - 1, x, y + 2 * len);
27     solve(k - 1, x + len, y + len);
28     return;
29 }
30 
31 int main() {
32     int n;
33     while(scanf("%d", &n)) {
34         if(n == -1) {
35             break;
36         }
37         for(int i = 0; i < N; i++) {
38             for(int j = 0; j < N; j++) {
39                 G[i][j] = ' ';
40             }
41         }
42         solve(n, 0, 0);
43         int len = pow(3, n - 1);
44         for(int i = 0; i < len; i++) {
45             for(int j = 0; j < len; j++) {
46                 putchar(G[i][j]);
47             }
48             printf("\n");
49         }
50         printf("-\n");
51     }
52 
53 
54     return 0;
55 }
AC代码

 

posted @ 2018-05-11 11:08  huyufeifei  阅读(288)  评论(0编辑  收藏  举报
试着放一个广告栏(虽然没有一分钱广告费)

ReadEra 阅读书籍

『Flyable Heart 応援中!』 HHG 高苗京铃 闪十PSS 双六 電動伝奇堂 章鱼罐头制作组 はきか 祝姬 星降夜