题目:

一开始看到这个问题的时候自己也是完全找不到头脑,而且经过仔细一想之后,这个图本身就有误导作用,因为它看起来根本就是像一个长方形,会严重影响你的思路,建议大家在草稿纸上重新把图画一下,然后你会发现这是一个正方形,并且这个图和标准正方形一样拥有四个对称轴,然后你就会发现其实不难。

我的思路是:完成它的一半,然后根据对称原则复制另半个正方形。

根据图上线索,你会发现再多层的十字图由内到外都有一个规律,依次是1,5,9,13个美元符递增4个,并且竖着的行每第一个和最后一个美元符向下产生两个符号,你会发现,当你想到这一步时,算法基本上也就可以去实现了。

以下是java算法:

    import java.util.Scanner;//打印十字public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int x = in.nextInt();int row = 4*x+5;int col = row;//全部定义为.的二维字符数组char word[][] = new char[row][col];for(int m=0;m<row;m++) {for(int n=0;n<col;n++) {word[m][n]='.';}}//开始改变内部结构//1int index = (row-3)/2;int fi = (index+1)/2;int finger = fi;for(int m=0;m<index;m=m+2) {int n=m+2;//首个'$'符向下延伸两个‘$’word[m+1][n] = '$';word[m+2][n] = '$';for(n=0+m;n<4*finger-3+m;n++) {word[m][n+2]='$';}//最后一个'$'符向下延伸两个‘$’word[m+1][n+1] = '$';word[m+2][n+1] = '$';finger--;}//2//复原fingerfinger = fi;for(int m=0;m<index;m=m+2) {int n=m+2;//首个'$'符向下延伸两个‘$’word[n][m+1] = '$';word[n][m+2] = '$';for(n=0+m;n<4*finger-3+m;n++) {word[n+2][m]='$';}finger--;//末尾'$'符向下延伸两个‘$’word[n+1][m+1] = '$';word[n+1][m+2] = '$';}//复制右上角部分for(int a=0;a<(word.length+1)/2;a++) {for(int b=0;b<(word.length+1)/2;b++) {word[a][word.length-b-1]=word[a][b];}}//以上半个二维字符数组复制下半个for(int a=0;a<word.length;a++) {for(int b=0;b<word.length;b++) {word[word.length-b-1][a] = word[b][a];}}//打印十字图形for(int m=0;m<row;m++) {for(int n=0;n<col;n++) {System.out.print(word[m][n]);}System.out.println();}}}

大致的步骤就是将二维数组全部元素定义为‘.’,然后通过修改内部结构完成十字图的输出。
这个算法是我脑海里第一个想到的,肯定还会有更简单的算法,有想法的小伙伴欢迎在文章下面评论交流喔。

蓝桥杯历届试题:打印十字图相关推荐

  1. 蓝桥杯 历届试题 打印十字图

    问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数. 输入格式 一个正整数 n (n<30) 表 ...

  2. 历届试题 打印十字图(模拟)

    试题 历届试题 打印十字图 资源限制 时间限制:1.0s 内存限制:256.0MB $Daily English: 我想要提醒这个星球上的人类唯一的一件事就是:我们 依赖地球母亲生存. The onl ...

  3. 蓝桥杯-c语言 打印十字图

    打印十字图 题目描述: 问题描述小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$ ...

  4. 历届试题-打印十字图(打印)

    题目详情 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$$ $... ...

  5. 历届试题 打印十字图

    问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数. 输入格式 一个正整数 n (n<30) 表 ...

  6. 蓝桥杯历届试题代码参考

    蓝桥杯历届试题代码参考 历届试题 核桃的数量 打印十字图 带分数 剪格子 错误票据 翻硬币 连号区间数 买不到的数目 大臣的旅费 幸运数 横向打印二叉树 危险系数 网络寻路 高僧斗法 格子刷油漆 农场 ...

  7. 历届试题+九宫重排+java_蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)...

    Description 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的 ...

  8. [蓝桥杯][历届试题]国王的烦恼(反向+并查集)

    问题 1435: [蓝桥杯][历届试题]国王的烦恼 时间限制: 1Sec 内存限制: 128MB 提交: 802 解决: 213 题目描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了 ...

  9. 蓝桥杯 - 历届试题 - 日期问题

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_33531813/article/details/79516258 </div>&l ...

最新文章

  1. c++获取可用端口号_PG高可用架构实施方案
  2. 已知bug列表——Solidity中文文档(12)
  3. 华为鸿蒙OS发布!余承东:随时可替换安卓;方舟编译器将支持混合编译
  4. CSS布局--head区的其他设置
  5. 使用Docker部署SpringBoot+Vue博客系统
  6. 干货分享:六个知名的Go语言web框架
  7. VTK:Snippets之WriteImage
  8. linux删除文件夹和文件
  9. 【粉丝投稿】人在职场,说话要小心!
  10. uml通信图画法_UML各种图画法总结
  11. 系统学习深度学习(十六)--Overfeat
  12. echart柱状图即显示数值,又显示百分比
  13. 数据库--MySQL
  14. MyBatis返回Map时值为null的字段会丢失
  15. Vue:插槽属性prop的使用示例
  16. 爬虫破解js加密破解(二) 有道词典js加密参数 sign破解
  17. 分页封装实用工具类及其使用方法
  18. 联想新电脑桌面没有计算机,联想笔记本电脑没有声音怎么解决
  19. matlab求市场清算价格不停,MATLAB数学实验(201516年第2学期)试题题目及答案,课程2020最新期末考试题库,章节测验答案...
  20. C语言程序设计李,C语言程序设计4--李2012.ppt

热门文章

  1. 再一次实战策略模式,太好用了
  2. 怎样访问远程服务器文件夹,访问远程服务器文件夹
  3. 新形势下中国金融科技的数字化运营
  4. [RPi]树莓派GPIO入门之控制LED灯
  5. 优质的海外媒体发布平台除了美联社-彭博社发稿,还有哪些?
  6. 计算机管理的mtp是什么,电脑的MTP驱动是什么?
  7. Spark转换算子和执行算子
  8. 【逻辑面试题】关于需要几架飞机可以让其中一架飞机绕地球一圈的问题
  9. 论文:Multi-Target Position and Velocity Estimation Using OFDM Communication Signals
  10. 射频百科:什么是相位噪声?及其含义