poj 2083 Fractal
来源:互联网 发布:用java求最小公倍数 编辑:程序博客网 时间:2024/05/05 01:25
http://poj.org/problem?id=2083
Fractal
Description
A fractal is an object or quantity that displays self-similarity, in a somewhat technical sense, on all scales. The object need not exhibit exactly the same structure at all scales, but the same "type" of structures must appear on all scales.
A box fractal is defined as below :
Your task is to draw a box fractal of degree n.
A box fractal is defined as below :
- A box fractal of degree 1 is simply
X - A box fractal of degree 2 is
X X
X
X X - If using B(n - 1) to represent the box fractal of degree n - 1, then a box fractal of degree n is defined recursively as following
B(n - 1) B(n - 1) B(n - 1)B(n - 1) B(n - 1)
Your task is to draw a box fractal of degree n.
Input
The input consists of several test cases. Each line of the input contains a positive integer n which is no greater than 7. The last line of input is a negative integer −1 indicating the end of input.
Output
For each test case, output the box fractal using the 'X' notation. Please notice that 'X' is an uppercase letter. Print a line with only a single dash after each test case.
Sample Input
1234-1
Sample Output
X-X X XX X-X X X X X XX X X X X X X X XX X X X X XX X X X-X X X X X X X X X X X XX X X X X X X X X X X X X X X X X XX X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X XX X X X X X X X X X X X X X X X X XX X X X X X X X X X X XX X X X X X X X-
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>#include <cstdlib>#include <limits>#include <queue>#include <stack>#include <vector>#include <map>using namespace std;typedef long long LL;#define N 1750#define INF 0x3f3f3f3f#define PI acos (-1.0)#define EPS 1e-5#define met(a, b) memset (a, b, sizeof (a))char str[N][N];int h;void Init (){ met (str, ' '); str[1][0] = 'X'; int hh = 1; for (int i=2; i<=7; i++) { for (int j=1; j<=hh; j++) { for (int k=0; k<hh; k++) { str[j][k+2*hh] = str[j][k]; str[j+hh][k+hh] = str[j][k]; str[j+2*hh][k] = str[j][k]; str[j+2*hh][k+2*hh] = str[j][k]; } } hh *= 3; }}int main (){ int n; Init (); while (scanf ("%d", &n), n!=-1) { h = (int)pow (3.0, n-1); for (int i=1; i<=h; i++) { for (int j=0; j<h; j++) printf ("%c", str[i][j]); puts (""); } puts ("-"); } return 0;}
DFS搜索
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>#include <cstdlib>#include <limits>#include <queue>#include <stack>#include <vector>#include <map>using namespace std;typedef long long LL;#define N 1750#define INF 0x3f3f3f3f#define PI acos (-1.0)#define EPS 1e-5#define met(a, b) memset (a, b, sizeof (a))#define Lson rt<<1, l, tree[rt].mid()#define Rson rt<<1|1, tree[rt].mid()+1, rchar str[N][N];void DFS (int n, int x, int y){ if (n == 1) { str[x][y] = 'X'; return; } int h = (int) pow (3.0, (n-2)); DFS (n-1, x, y);///左上角 DFS (n-1, x, y+2*h);///右上角 DFS (n-1, x+h, y+h);///中间 DFS (n-1, x+2*h, y);///左下角 DFS (n-1, x+2*h, y+2*h);///右下角}int main (){ int n; while (scanf ("%d", &n), n!=-1) { met (str, ' '); DFS (n, 1, 1); int h = (int) pow (3.0, (n-1)); for (int i=1; i<=h; i++) { for (int j=1; j<=h; j++) printf ("%c", str[i][j]); puts (""); } puts ("-"); } return 0;}
1 0
- Poj 2083 Fractal
- 【递归】poj 2083fractal
- POJ-2083-Fractal
- poj 2083 Fractal 递归
- POJ 2083 Fractal
- Fractal poj 2083
- POJ 2083 Fractal 递归
- POJ 2083 Fractal
- poj 2083 Fractal
- poj--2083--Fractal(dfs)
- POJ 2083 Fractal
- POJ 2083 Fractal
- POJ 2083 Fractal 笔记
- POJ 2083 Fractal 分治+递归
- POJ 2083 Fractal 递归画分形
- POJ-2083 Fractal-X星阵图
- POJ 2083 Fractal(递归)
- POJ 2083 Fractal(dfs)
- C 数组指针和指针数组的区别
- 在C++中调用Python接口
- [ACM]星宿归位(排序)
- Linux安装JAVA(使用wget下载JDK--跳过accept licence)
- C++:基于LL(1)方法的语法分析程序-2
- poj 2083 Fractal
- 配置Vim的Markdown环境
- 常用框架
- OpenGL ES概述
- LeetCode 6 : ZigZag Conversion (Java)
- (七十二)while循环
- AngularJS实战第一章
- 《Android群英传》第一章~第二章
- 决策树归纳 基本概念