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 :

A box fractal of degree 1 is simply

  1. X

A box fractal of degree 2 is

  1. X X
  2. X
  3. 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

  1. B(n - 1) B(n - 1)
  2. B(n - 1)
  3. 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

1

2

3

4

-1

Examples

Input

3

2 3 2

2

3 2

2 3

Output

  1. X
  2. -
  3. X X
  4. X
  5. X X
  6. -
  7. X X X X
  8. X X
  9. X X X X
  10. X X
  11. X
  12. X X
  13. X X X X
  14. X X
  15. X X X X
  16. -
  17. X X X X X X X X
  18. X X X X
  19. X X X X X X X X
  20. X X X X
  21. X X
  22. X X X X
  23. X X X X X X X X
  24. X X X X
  25. X X X X X X X X
  26. X X X X
  27. X X
  28. X X X X
  29. X X
  30. X
  31. X X
  32. X X X X
  33. X X
  34. X X X X
  35. X X X X X X X X
  36. X X X X
  37. X X X X X X X X
  38. X X X X
  39. X X
  40. X X X X
  41. X X X X X X X X
  42. X X X X
  43. X X X X X X X X
  44. -

Analysis

一句话题意:打印图形

其实就是把删一个图形在右上、左下、右下分别复制粘贴一遍就OK了

然而我居然习惯输出空格导致WA了3发。。。

代码

真的很水啦。。。

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<cstdlib>
  4. #include<cstdio>
  5. #include<cstring>
  6. using namespace std;
  7. int n,cnt[100];
  8. char co[1000][1000];
  9. void copy(int k,int x,int y){
  10. for(int j=1;j<=cnt[k-1];j++){
  11. for(int l=cnt[k-1]*2+1;l<=cnt[k];l++){//右上
  12. co[j][l]=co[j][l-cnt[k-1]*2];
  13. }
  14. }
  15. for(int j=cnt[k-1]+1;j<=cnt[k-1]*2;j++){//中间
  16. for(int l=cnt[k-1]+1;l<=cnt[k-1]*2;l++){
  17. co[j][l]=co[j-cnt[k-1]][l-cnt[k-1]];
  18. }
  19. }
  20. for(int j=cnt[k-1]*2+1;j<=cnt[k];j++){//左下
  21. for(int l=1;l<=cnt[k-1];l++){
  22. co[j][l]=co[j-cnt[k-1]*2][l];
  23. }
  24. }
  25. for(int j=cnt[k-1]*2+1;j<=cnt[k];j++){//右下
  26. for(int l=cnt[k-1]*2+1;l<=cnt[k];l++){
  27. co[j][l]=co[j-cnt[k-1]*2][l-cnt[k-1]*2];
  28. }
  29. }
  30. }
  31. int main(){
  32. cnt[0]=cnt[1]=1;
  33. for(int i=2;i<=10;i++)cnt[i]=cnt[i-1]*3;
  34. while(cin>>n){
  35. memset(co,' ',sizeof(co));
  36. if(n==-1)return 0;
  37. co[1][1]='X';
  38. for(int i=2;i<=n;i++){
  39. copy(i,cnt[i],cnt[i]);
  40. }
  41. for(int i=1;i<=cnt[n];i++){
  42. for(int j=1;j<=cnt[n];j++){
  43. cout<<co[i][j];
  44. }
  45. cout<<endl;
  46. }
  47. cout<<"-"<<endl;
  48. }
  49. }

POJ-2083 Fractal-X星阵图的更多相关文章

  1. POJ 2083 Fractal 分形题目

    这两天自学了一线算法导论里分治策略的内容,秉着只有真正投入投入编程,才能更好的理解一种算法的思想的想法,兴致勃勃地找一些入门的题来学习. 搜了一下最后把目光锁定在了Poj fractal这一个题上.以 ...

  2. poj 2083 Fractal 递归 图形打印

    题目链接: http://poj.org/problem?id=2083 题目描述: n = 1时,图形b[1]是X n = 2时,图形b[2]是X  X        X               ...

  3. POJ 2083 Fractal

    Fractal Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 6646   Accepted: 3297 Descripti ...

  4. POJ 2083 Fractal 分形

    去年校赛团队赛就有一道分形让所有大一新生欲生欲死…… 当时就想学了 结果一直拖到…… 今天上午…… 马上要省选了 才会一点基础分形…… 还是自己不够努力啊…… 分形主要是要找到递归点…… 还有深度…… ...

  5. ( 递归 )Fractal -- POJ -- 2083

    http://poj.org/problem?id=2083 Fractal Time Limit: 1000MS   Memory Limit: 30000K Total Submissions:  ...

  6. POJ 1985.Cow Marathon-树的直径-树的直径模板(BFS、DFS(vector存图)、DFS(前向星存图))

    Cow Marathon Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 7536   Accepted: 3559 Case ...

  7. UESTC30-最短路-Floyd最短路、spfa+链式前向星建图

    最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同 ...

  8. 最短路 spfa 算法 && 链式前向星存图

    推荐博客  https://i.cnblogs.com/EditPosts.aspx?opt=1 http://blog.csdn.net/mcdonnell_douglas/article/deta ...

  9. HDU 1535 SPFA 前向星存图优化

    Invitation Cards Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

随机推荐

  1. Redis在新项目中的使用场景

    Redis在新项目中的使用场景 数据类型 使用场景 string 比如说,我想知道什么时候封锁一个Ip地址,Incrby命令(使用这个命令记录被访问的次数) Hash 存储用户的信息[id,name, ...

  2. JSP实例:彩色验证码

    本例使用一个JavaBean,名为Image.java,包com.zempty.bean下; 三个JSP文件,分别为image.jsp.login.jsp.check.jsp.其中login.jsp是 ...

  3. php异或计算绕过preg_match()

    原理以制作免杀马为例:     在制作免杀马的过程,根据php的语言特性对字符进行!运算会将字符类型转为bool类型,而bool类型遇到运算符号时,true会自动转为数字1,false会自动转为数字0 ...

  4. 遇到XML-GB2312网页编码的处理方法

    报的错误:encoding error : input conversion failed due to input error, bytes  I/O error : encoder error 1 ...

  5. 松软科技课堂:SQL-SELECT-INTO语句

    SQL SELECT INTO 语句可用于创建表的备份复件. SELECT INTO 语句 SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中. SELECT INTO 语句常用 ...

  6. Angular4+Koa2+MongoDB开发个人博客

    **文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号.** ![file](https://img2018.cnblogs.com/blog/830272/201 ...

  7. 新版本SpringCloud sleuth整合zipkin

    SpringCloud Sleuth 简介 Spring Cloud Sleuth为Spring Cloud实现了分布式跟踪解决方案. Spring Cloud Sleuth借鉴了Dapper的术语. ...

  8. nginx 模块

    8.nginx开启目录浏览 提供下载功能 默认情况下,网站返回index指定的主页,但如果该网站不存在主页,则将请求交给autoindex模块 ##### 如果开启autoindex模块,则提供一个下 ...

  9. 03:H.264编码原理以及视频压缩I、P、B帧

    一:前言 H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中, 一般有差别的像素只有1 ...

  10. tomcat 报错出现 jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

    这是你导入的jar的问题 一般情况下是导入的包tomcat已经存在 也就是说 不需要你再次导入 所以你现在要做的是删除你所导的包 解决方案:删除你的web项目导入的这两个jar文件 jsp-api.j ...