Fractal poj 2083
来源:互联网 发布:四川遂宁广电网络 编辑:程序博客网 时间:2024/05/18 17:42
C - Fractal(3.4.1)
点击打开题目链接
Time Limit:1000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64u点击打开题目链接
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-打印图形的题目,递归处理;我遇到的困难:对于空格的处理,处理的不是很好;无奈智商压制只好用笨方法了:代码:/*注:代码中的k是指图形的大小为k*k的;*/#include <iostream>#include <string.h>#include<stdio.h>#include <math.h>using namespace std;char map[1000][1000];void printspace(int n,int x,int y)//补空格{ //int Y; int i,j,k=int(pow(3.0,n-2)); for(j=x; j<k+x; j++) { for(i=y-1;i>=0;i--)//两个图形之间补空格(从当前位置向前找) { if(map[j][i]!='X'&&map[j][i]=='\0') { map[j][i]=32; } else if(map[j][i]=='X') break; } for(i=y; i<k+y; i++)//(从当前位置向后找) { map[j][i]=32; } } //fillespace(n-1,x,y-k);}void print(int n,int x,int y){ int k=int(pow(3.0,n-2)); if(n==1) { map[x][y]='X'; } else { print(n-1,x,y);//递归画出左上角的图形 printspace(n,x,y+k);//填写空格 print(n-1,x,y+2*k);//右上角 printspace(n,x+k,y);//空格 print(n-1,x+k,y+k);//中间的图形 print(n-1,x+2*k,y);//左下角 printspace(n,x+2*k,y+k);//空格 print(n-1,x+2*k,y+2*k);//右下角图形 }}int main(){ int n,k,l;//j; //freopen("\\input.txt","r",stdin); // freopen("\\output.txt","w",stdout); while(cin>>n&&n!=-1) { memset(map,'\0',sizeof(map[0])*1000); k=int(pow(3.0,n-1)); print(n,0,0); for(l=0; l<k; l++) { //for(j=0;j<k;j++) cout<<map[l]; cout<<endl; } cout<<"-"<<endl; } return 0;}
0 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)
- SPOJ 6779 Can you answer these queries VII 树链剖分
- WEBKIT内核源码分析系列
- 插入法排序
- 数塔
- Android Framework------之Input子系统
- Fractal poj 2083
- QtCreator 布局管理(QLayout,QBoxLayout,QGridLayout,QFormLayout,QStackedLayout)
- Wooden Sticks +hdu+贪心
- oracle全文检索
- PDF转换器下载
- Linux(CentOS)下,各种协议,端口号
- vc 刷新系统托盘图标
- UF超滤膜:uf超滤膜技术过滤原理阐述
- 冒泡排序、选择排序