码迷,mamicode.com
首页 > 其他好文 > 详细

poj 2083 Fractal 递归 图形打印

时间:2014-12-17 18:08:06      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   io   color   sp   for   div   

题目链接:

  http://poj.org/problem?id=2083

题目描述:

  n = 1时,图形b[1]是X

  n = 2时,图形b[2]是X  X 
                 X 
                                 X  X 

  所以n时,图形b[n]是b[n-1]         b[n-1]

                 b[n-1]

            b[n-1]        b[n-1]

解题思路:

  用递归打印图形,存到二维数组里面,输出是一个矩形,竟然是一个矩形!!!!!!

代码:

 1 #include <cmath>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cstdlib>
 5 using namespace std;
 6 #define maxn 740
 7 char map[maxn][maxn];
 8 
 9 void dfs (int n, int x, int y);
10 //n是b[n],(x,y)是b[n]左上那个点;
11 int main ()
12 {
13     int i, j, n;
14     while (scanf ("%d", &n), n != -1)
15     {
16         int m = (int)pow(3,n-1);
17         for (i=0; i<=m; i++)
18         {
19             for (j=0; j<=m; j++)
20                 map[i][j] =  ;
21             map[i][m+1] = \0;
22         }
23         dfs (n, 0, 0);
24         for (i=0; i<m; i++)
25             puts(map[i]);
26             printf ("-\n");
27     }
28     return 0;
29 }
30 
31 void dfs (int n, int x, int y)
32 {
33     if (n == 1)
34     {
35         map[x][y] = X;
36         return ;
37     }
38     int m = (int) pow (3, n-2);//b[n-1]的大小
39     dfs (n-1, x, y);//up_left
40     dfs (n-1, x, y+2*m);//up_right
41     dfs (n-1, x+m, y+m);//middle
42     dfs (n-1, x+2*m, y);//down_left
43     dfs (n-1, x+2*m, y+2*m);//down_right
44 }

 

poj 2083 Fractal 递归 图形打印

标签:style   blog   http   ar   io   color   sp   for   div   

原文地址:http://www.cnblogs.com/alihenaixiao/p/4169888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!