分形盒

分形,通常被定义为一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状,即具有自相似的性质。它跟分数维、自组织、非线性系统和混沌等具有非常重要的联系。

分形盒就是这样一种分形,它的定义如下:

维度是1的分形盒:

X

维度是2的分形盒:

X  XXX  X

如果已知维度是(n-1)的分形盒,那么维度是n的分形盒的递归定义如下所示:

Box(n-1) Box(n-1)

          Box(n-1)

Box(n-1) Box(n-1)

你的任务是画一个维度为n的分形盒。

时间限制:1000
内存限制:65536
输入
输入包含多组测试数据。每一行包含一个正整数n表示分形盒的维度,n不大于7;最后一行是一个-1,表示输入结束。
输出
对于每组测试数据,输出要求维度的分形盒,注意X为大写字母。每组测试数据之后包含一行,改行只包含一个破折号。
样例输入

1
2
3
4
-1

样例输出

X
-
X XX
X X
-
X X   X XX     X
X X   X XX XXX X
X X   X XX     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 XX                 XX X               X X
X X   X X         X X   X XX     X           X     X
X X   X X         X X   X XX X   X XX     XX X   X XX XXX XX X   X XX     XX X   X X
X X   X X         X X   X XX     X           X     X
X X   X X         X X   X XX X               X XX                 XX X               X X
X X   X X         X X   X XX     X           X     X
X X   X X         X X   X X
-

解题思路:
初始把所有需要显示符号位置标记,然后确定边界范围,把需要显示的符号显示出来

代码如下:

//1、非递归(循环利用坐标变换):
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
const int maxn=3010;
int n;
int ch[maxn][maxn];void init()//标记所有显示符号位
{ch[1][1]=1;for(int k=2;k<=8;k++){//维度 int p=pow(3,k-2);//偏移量 for(int i=1;i<=p;i++){//行 for(int j=1;j<=p;j++){//列 ch[i+2*p][j]=ch[i][j+2*p]=ch[i+p][j+p]=ch[i+2*p][j+2*p]=ch[i][j];//把n-1级图形作为n级图形的左上角,这个图形的每个坐标分别加上四个偏移量得到其余四个分量}}}
}void output()
{int N=pow(3,n-1);for(int i=1;i<=N;i++){for(int j=1;j<=N;j++){if(ch[i][j]) cout<<"X";else cout<<" ";}cout<<endl;}cout<<"-"<<endl;
}int main()
{init();while(cin>>n&&n!=-1){output();}return 0;
}

等级考试三级(分形盒)相关推荐

  1. 计算机三级考试c,全国计算机等级考试——三级c语言机试答案

    全国计算机等级考试--三级c语言机试答案 (11页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 网络中心卓越计算机培训三级上机习题答案1第 ...

  2. 福建省高等学校非计算机考试大纲,福建省高等学校计算机应用水平等级考试三级(偏软)考试大纲...

    福建省高等学校计算机应用水平等级考试三级(偏软)考试大纲 2007年04月13日 星期五 9:55 I.考试目的 本考试考查考生以下知识与能力: 1.具有较宽的计算机系统基础知识: 2.掌握数据结构的 ...

  3. c语言三级上机题库,2006年9月全国等级考试三级c语言上机题库(三十四)

    ★☆题目34(无忧id 73,102 素数题) 无忧id 102 题提供了求素数isPrime()函数 程序prog1.c的功能是:选出100以上1000之内所有个位数字与十位数字之和被10除所得余数 ...

  4. 三级哪个不用学c语言,考全国计算机等级考试三级如何学C语言

    考全国计算机等级考试三级如何学C语言 很想写一遍关于三级C上机方面的学习文章,苦于水平有限,加上一直没有时间和精力,停了下来.今天正好没事,看了相关资料,着手写了下,希望能对没学过C语言而又想考三级的 ...

  5. 计算机等级考试三级教材,计算机等级考试三级过关技巧

    计算机等级考试三级过关技巧 如果你是在校大学生,那我推荐如考3级还是网络比较好,一是:3级网络上机程序题是C语言,2级有C语言,4级网工等也是C语言,所以学好C语言的话,2.3.4都用到.二是:资源丰 ...

  6. 浙江省计算机数据库三级报名,浙江省计算机等级考试三级数据库技术

    <浙江省计算机等级考试三级数据库技术>由会员分享,可在线阅读,更多相关<浙江省计算机等级考试三级数据库技术(4页珍藏版)>请在人人文库网上搜索. 1.浙江省计算机等级考试三级数 ...

  7. Python软件编程等级考试三级——20220618

    Python软件编程等级考试三级--20220618 理论 单选题 判断题 实操 第一题 第二题 第三题 理论 单选题 1. 如下所示的2行代码,最后print()函数打印出来的结果是? c = [[ ...

  8. Scratch软件编程等级考试三级——20191221

    Scratch软件编程等级考试三级--20191221 理论 单选题 判断题 实操 合作画画 捡垃圾游戏 判断奇偶数 理论 单选题 1.怎样修改图章的颜色?() A.只需要一个数字来设置颜色 B.设置 ...

  9. Scratch软件编程等级考试三级——20200913

    Scratch软件编程等级考试三级--20200913 理论 单选题 判断题 实操 幻影小猫 打气球游戏 猫咪抓老鼠游戏 理论 单选题 1.要使以下代码运行后画出如图所示三角形风车,则以下代码中①②③ ...

  10. 计算机三级网络技术分值占比,全国计算机等级考试三级考试题型及分值比例

    对于全国计算机等级考试三级考试题型及分值比例的内容,最近很多人很困惑,一直在咨询小编,今天华律网小编针对该问题,梳理了以下内容,希望可以帮您答疑解惑. 1.三级网络题型及分值比例: 上机考试,考试时长 ...

最新文章

  1. wordpress本地mysql_如何在本地搭建和运行wordpress
  2. 《NoSQL For Mere Mortals》书评与作者问答录
  3. Java内存管理的9个小技巧
  4. 艾伟:【翻译】使用ASP.NET 2.0记录错误
  5. Collection(单列集合)
  6. pythonapp自动化_Android App持续集成性能测试:使用Python实现UI自动化
  7. 我想说进厂打工怎么就丢人了
  8. JAVA核心技术卷1 corejava.zip 下载地址
  9. C语言的printf输出格式控制
  10. matlab 三维图像 叠加,利用 Matlab构建“波的叠加”图样
  11. javascript中function前面的符号的意思!
  12. 《C++程序设计》第十章总结
  13. flowable支持集群数据库
  14. photoshop CS3 许可过期问题的解决方法(不完全可行)
  15. WIN7的EPROCESS和PEB和WINXPSP3的EPROCESS
  16. 打几折怎么用计算机算,九折怎么算计算方法 打9折是多少
  17. 泛函分析笔记09:开映射与闭图象定理
  18. Zeal下载文档慢无响应问题(详细操作流程-告别龟速下载)
  19. We've had enough
  20. 游记-NOIP2018

热门文章

  1. 微信小程序登录功能wx.login
  2. 【Mac】使用Karabiner 映射输入法快捷键
  3. 左方之地 - 结论 - 组合计数
  4. 使用UUID生成32位ID
  5. 心跳重连机制(登录)
  6. 华图教育计算机基础知识,公共基础知识备考:计算机辅助制造
  7. 第4-8课:方块消除游戏
  8. android 左测设置功能,iqoo手机左边按键有什么作用?iqoo手机左侧按键介绍
  9. 魅族怎么更改html,魅族默认浏览器设置
  10. 如何以编程方式执行Unwind segue?