蓝桥杯历届试题:打印十字图
题目:
一开始看到这个问题的时候自己也是完全找不到头脑,而且经过仔细一想之后,这个图本身就有误导作用,因为它看起来根本就是像一个长方形,会严重影响你的思路,建议大家在草稿纸上重新把图画一下,然后你会发现这是一个正方形,并且这个图和标准正方形一样拥有四个对称轴,然后你就会发现其实不难。
我的思路是:完成它的一半,然后根据对称原则复制另半个正方形。
根据图上线索,你会发现再多层的十字图由内到外都有一个规律,依次是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();}}}
大致的步骤就是将二维数组全部元素定义为‘.’,然后通过修改内部结构完成十字图的输出。
这个算法是我脑海里第一个想到的,肯定还会有更简单的算法,有想法的小伙伴欢迎在文章下面评论交流喔。
蓝桥杯历届试题:打印十字图相关推荐
- 蓝桥杯 历届试题 打印十字图
问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数. 输入格式 一个正整数 n (n<30) 表 ...
- 历届试题 打印十字图(模拟)
试题 历届试题 打印十字图 资源限制 时间限制:1.0s 内存限制:256.0MB $Daily English: 我想要提醒这个星球上的人类唯一的一件事就是:我们 依赖地球母亲生存. The onl ...
- 蓝桥杯-c语言 打印十字图
打印十字图 题目描述: 问题描述小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$ ...
- 历届试题-打印十字图(打印)
题目详情 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$$ $... ...
- 历届试题 打印十字图
问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数. 输入格式 一个正整数 n (n<30) 表 ...
- 蓝桥杯历届试题代码参考
蓝桥杯历届试题代码参考 历届试题 核桃的数量 打印十字图 带分数 剪格子 错误票据 翻硬币 连号区间数 买不到的数目 大臣的旅费 幸运数 横向打印二叉树 危险系数 网络寻路 高僧斗法 格子刷油漆 农场 ...
- 历届试题+九宫重排+java_蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)...
Description 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的 ...
- [蓝桥杯][历届试题]国王的烦恼(反向+并查集)
问题 1435: [蓝桥杯][历届试题]国王的烦恼 时间限制: 1Sec 内存限制: 128MB 提交: 802 解决: 213 题目描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了 ...
- 蓝桥杯 - 历届试题 - 日期问题
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_33531813/article/details/79516258 </div>&l ...
最新文章
- c++获取可用端口号_PG高可用架构实施方案
- 已知bug列表——Solidity中文文档(12)
- 华为鸿蒙OS发布!余承东:随时可替换安卓;方舟编译器将支持混合编译
- CSS布局--head区的其他设置
- 使用Docker部署SpringBoot+Vue博客系统
- 干货分享:六个知名的Go语言web框架
- VTK:Snippets之WriteImage
- linux删除文件夹和文件
- 【粉丝投稿】人在职场,说话要小心!
- uml通信图画法_UML各种图画法总结
- 系统学习深度学习(十六)--Overfeat
- echart柱状图即显示数值,又显示百分比
- 数据库--MySQL
- MyBatis返回Map时值为null的字段会丢失
- Vue:插槽属性prop的使用示例
- 爬虫破解js加密破解(二) 有道词典js加密参数 sign破解
- 分页封装实用工具类及其使用方法
- 联想新电脑桌面没有计算机,联想笔记本电脑没有声音怎么解决
- matlab求市场清算价格不停,MATLAB数学实验(201516年第2学期)试题题目及答案,课程2020最新期末考试题库,章节测验答案...
- C语言程序设计李,C语言程序设计4--李2012.ppt
热门文章
- 再一次实战策略模式,太好用了
- 怎样访问远程服务器文件夹,访问远程服务器文件夹
- 新形势下中国金融科技的数字化运营
- [RPi]树莓派GPIO入门之控制LED灯
- 优质的海外媒体发布平台除了美联社-彭博社发稿,还有哪些?
- 计算机管理的mtp是什么,电脑的MTP驱动是什么?
- Spark转换算子和执行算子
- 【逻辑面试题】关于需要几架飞机可以让其中一架飞机绕地球一圈的问题
- 论文:Multi-Target Position and Velocity Estimation Using OFDM Communication Signals
- 射频百科:什么是相位噪声?及其含义