Java实现第九届蓝桥杯打印大X
打印大X
题目描述
如下的程序目的是在控制台打印输出大X。
可以控制两个参数:图形的高度,以及笔宽。
用程序中的测试数据输出效果:
(如果显示有问题,可以参看p1.png)
高度=15, 笔宽=3
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
*****
***
*****
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
高度=8, 笔宽=5
***** *****
**********
********
******
******
********
**********
***** *****
请仔细分析程序流程,填写缺失的代码。

PS:
这题的思路,有图形,且确实填空代码不报错的情况。快捷的办法就是先运行一遍,结果发现缺失的代码对应每个图形的类似部位,都在中间,这样就有思路了,这样在认真读题,结合残缺图形,很容易得到答案,
我之前有发过一题,也是打印大X,个人觉得我的算法至少在代码简洁度上比这个要好得多,其他的效率什么的就不太清除了,欢迎大家找我讨论;
首先,看看没有这一行执行是什么样子

证明,填写的地方就是交叉的地方,并且是打印*的地方,只有一行
q永远是大的,p永远是小的
当向中间靠拢的时候他们的差是比较小的
int a1 = 0;
int a2 = h - 1;
int p = Math.min(a1,a2);
int q = Math.max(a1+w,a2+w);
既然是代码填空题,想不明白的时候多试试,结果就出来了
好记性不如烂笔头,尝试才能出结果,空想就真的空了
下面附上整体代码
package Lqb;
public class Text32 {
public static void main(String[] args) {
f(15,3);
f(8,5);
}
static void f(int h, int w){
System.out.println(String.format("高度=%d, 笔宽=%d",h,w));
int a1 = 0;
int a2 = h - 1;
for(int k=0; k<h; k++){
int p = Math.min(a1,a2);
int q = Math.max(a1+w,a2+w);
for(int i=0; i<p; i++) System.out.print(" ");
if(q-p<w*2){
for(int i=0; i<q-p; i++) System.out.print("*"); ; //填空
}
else{
for(int i=0; i<w; i++) System.out.print("*");
for(int i=0; i<q-p-w*2; i++) System.out.print(" ");
for(int i=0; i<w; i++) System.out.print("*");
}
System.out.println();
a1++;
a2--;
}
}
}
Java实现第九届蓝桥杯打印大X的更多相关文章
- Java实现第九届蓝桥杯全球变暖
全球变暖 题目描述 你有一张某海域NxN像素的照片,"."表示海洋."#"表示陆地,如下所示: ....... .##.... .##.... ....##. ...
- java实现第六届蓝桥杯打印大X
打印大X 打印大X 小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度. 为了便于比对空格,所有的空白位置都以句点符来代替. 要求输入两个整数m n,表示笔的宽度,X的高度.用 ...
- Java实现第九届蓝桥杯小朋友崇拜圈
小朋友崇拜圈 题目描述 班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己). 在一个游戏中,需要小朋友坐一个圈, 每个小朋友都有自己最崇拜的小朋友在他的右手边. 求满足条件的圈最大多少人 ...
- Java实现第九届蓝桥杯耐摔指数
耐摔指数 题目描述 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后 ...
- Java实现第九届蓝桥杯付账问题
付账问题 题目描述 [题目描述] 几个人一起出去吃饭是常有的事.但在结帐的时候,常常会出现一些争执. 现在有 n 个人出去吃饭,他们总共消费了 S 元.其中第 i 个人带了 ai 元.幸运的是,所有人 ...
- Java实现第九届蓝桥杯字母阵列
字母阵列 题目描述 仔细寻找,会发现:在下面的8x8的方阵中,隐藏着字母序列:"LANQIAO". SLANQIAO ZOEXCCGB MOAYWKHI BCCIPLJQ SLAN ...
- Java实现第九届蓝桥杯缩位求和
缩位求和 题目描述 在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确. 比如:248 * 15 = 3720 把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得 ...
- Java实现第九届蓝桥杯倍数问题
倍数问题 题目描述 [题目描述] 众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数.但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼.现在小葱给了你 n 个数,希望你从这 n ...
- Java实现第九届蓝桥杯堆的计数
堆的计数 题目描述 我们知道包含N个元素的堆可以看成是一棵包含N个节点的完全二叉树. 每个节点有一个权值.对于小根堆来说,父节点的权值一定小于其子节点的权值. 假设N个节点的权值分别是1~N,你能求出 ...
随机推荐
- jvm启动参数调优
1.背景 eclipse启动了一个项目,用了15分钟,我佛了,在家办公也懒得弄一直没管,好嘛,越用越气,越来越慢,现在启动一次要半小时了,气不气,然后下定决心调优一下. 2.知识库(自认为调优重要的几 ...
- java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized的报错问题
url的问题 这个是根据使用的数据库版本不同而出现的错误,mysql8.0以上版本在使用URL时如果使用的语句是 url=jdbc:mysql://localhost:3306/book 是会报错的, ...
- 【SMB源码解析系列】——003.SMB游戏基本框架
前面有了解到RESET中断相关代码,结尾处通过一句jmp进入了无限循环,之后CPU将会在每一帧PUU进入VBlank状态时,接收NMI中断信号, 跳转至NMI代码处继续执行,直到遇见RTI指令时又返回 ...
- Vue+Vuex 实现自动登录功能
刚刚实现了Vue+Vuex的自动登录功能,在实现的时候遇到了一些问题,这里记录一下: 因为这个还不够完善,在写完下列代码后,又进行了补充,可以从https://www.cnblogs.com/xiao ...
- vue 3.0新特性
参考: https://www.cnblogs.com/Highdoudou/p/9993870.html https://www.cnblogs.com/ljx20180807/p/9987822 ...
- 数据结构----二叉树Tree和排序二叉树
二叉树 节点定义 class Node(object): def __init__(self, item): self.item = item self.left = None self.right ...
- EMAIL、用户名测试点
EMAIL xxxaa@xxx.xxx 1.没有@情况,如:aa.net 2.没有.符号,如:aa@qqcom 3..后面没有字符:如 xxxaa@xxx. 4..不在@后面, 如:xxxaa.@xx ...
- select 下拉框样式修改 option文字居右
select { direction: rtl; /*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/ border: solid 1px #000; /*很关键:将默认的sele ...
- CukeTest+Puppeteer的Web自动化测试(一)
CukeTest+Puppeteer的Web自动化测试 一.初识BDD.Cucumber(黄瓜).CukeTest 行为驱动开发(Behavior Driven Development,BDD).行为 ...
- Gym101630C Connections
题目大意: 给出一个\(n\)个点\(m\)条边的有向图,无自环无重边.要求把这个图进行删边,直到只剩下\(2n\)条边,使得图中每个点都可以相互连通. 知识点: DFS 解题思路: 从点\(1\)出 ...