打印大X

  1. 题目描述
  2. 如下的程序目的是在控制台打印输出大X
  3. 可以控制两个参数:图形的高度,以及笔宽。
  4. 用程序中的测试数据输出效果:
  5. (如果显示有问题,可以参看p1.png)
  6. 高度=15, 笔宽=3
  7. *** ***
  8. *** ***
  9. *** ***
  10. *** ***
  11. *** ***
  12. *** ***
  13. *****
  14. ***
  15. *****
  16. *** ***
  17. *** ***
  18. *** ***
  19. *** ***
  20. *** ***
  21. *** ***
  22. 高度=8, 笔宽=5
  23. ***** *****
  24. **********
  25. ********
  26. ******
  27. ******
  28. ********
  29. **********
  30. ***** *****
  31. 请仔细分析程序流程,填写缺失的代码。



PS:

这题的思路,有图形,且确实填空代码不报错的情况。快捷的办法就是先运行一遍,结果发现缺失的代码对应每个图形的类似部位,都在中间,这样就有思路了,这样在认真读题,结合残缺图形,很容易得到答案,

我之前有发过一题,也是打印大X,个人觉得我的算法至少在代码简洁度上比这个要好得多,其他的效率什么的就不太清除了,欢迎大家找我讨论;

首先,看看没有这一行执行是什么样子



证明,填写的地方就是交叉的地方,并且是打印*的地方,只有一行

q永远是大的,p永远是小的

当向中间靠拢的时候他们的差是比较小的

  1. int a1 = 0;
  2. int a2 = h - 1;
  3. int p = Math.min(a1,a2);
  4. int q = Math.max(a1+w,a2+w);

既然是代码填空题,想不明白的时候多试试,结果就出来了

好记性不如烂笔头,尝试才能出结果,空想就真的空了

下面附上整体代码

  1. package Lqb;
  2. public class Text32 {
  3. public static void main(String[] args) {
  4. f(15,3);
  5. f(8,5);
  6. }
  7. static void f(int h, int w){
  8. System.out.println(String.format("高度=%d, 笔宽=%d",h,w));
  9. int a1 = 0;
  10. int a2 = h - 1;
  11. for(int k=0; k<h; k++){
  12. int p = Math.min(a1,a2);
  13. int q = Math.max(a1+w,a2+w);
  14. for(int i=0; i<p; i++) System.out.print(" ");
  15. if(q-p<w*2){
  16. for(int i=0; i<q-p; i++) System.out.print("*"); ; //填空
  17. }
  18. else{
  19. for(int i=0; i<w; i++) System.out.print("*");
  20. for(int i=0; i<q-p-w*2; i++) System.out.print(" ");
  21. for(int i=0; i<w; i++) System.out.print("*");
  22. }
  23. System.out.println();
  24. a1++;
  25. a2--;
  26. }
  27. }
  28. }

Java实现第九届蓝桥杯打印大X的更多相关文章

  1. Java实现第九届蓝桥杯全球变暖

    全球变暖 题目描述 你有一张某海域NxN像素的照片,"."表示海洋."#"表示陆地,如下所示: ....... .##.... .##.... ....##. ...

  2. java实现第六届蓝桥杯打印大X

    打印大X 打印大X 小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度. 为了便于比对空格,所有的空白位置都以句点符来代替. 要求输入两个整数m n,表示笔的宽度,X的高度.用 ...

  3. Java实现第九届蓝桥杯小朋友崇拜圈

    小朋友崇拜圈 题目描述 班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己). 在一个游戏中,需要小朋友坐一个圈, 每个小朋友都有自己最崇拜的小朋友在他的右手边. 求满足条件的圈最大多少人 ...

  4. Java实现第九届蓝桥杯耐摔指数

    耐摔指数 题目描述 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后 ...

  5. Java实现第九届蓝桥杯付账问题

    付账问题 题目描述 [题目描述] 几个人一起出去吃饭是常有的事.但在结帐的时候,常常会出现一些争执. 现在有 n 个人出去吃饭,他们总共消费了 S 元.其中第 i 个人带了 ai 元.幸运的是,所有人 ...

  6. Java实现第九届蓝桥杯字母阵列

    字母阵列 题目描述 仔细寻找,会发现:在下面的8x8的方阵中,隐藏着字母序列:"LANQIAO". SLANQIAO ZOEXCCGB MOAYWKHI BCCIPLJQ SLAN ...

  7. Java实现第九届蓝桥杯缩位求和

    缩位求和 题目描述 在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确. 比如:248 * 15 = 3720 把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得 ...

  8. Java实现第九届蓝桥杯倍数问题

    倍数问题 题目描述 [题目描述] 众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数.但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼.现在小葱给了你 n 个数,希望你从这 n ...

  9. Java实现第九届蓝桥杯堆的计数

    堆的计数 题目描述 我们知道包含N个元素的堆可以看成是一棵包含N个节点的完全二叉树. 每个节点有一个权值.对于小根堆来说,父节点的权值一定小于其子节点的权值. 假设N个节点的权值分别是1~N,你能求出 ...

随机推荐

  1. 【5min+】美化API,包装AspNetCore的返回结果

    系列介绍 [五分钟的dotnet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net ...

  2. Java ThreadLocal解析

    简介 ThreadLocal 类似局部变量,解决了单个线程维护自己线程内的变量值(存.取.删),让线程之间的数据进行隔离.(InheritableThreadLocal 特例) 这里涉及三个类,Thr ...

  3. Linux下几个与磁盘空间和文件尺寸相关的命令

    大家好,我是良许. 硬盘是计算机非常重要的一个部件,不管是代码,还是 UI .声音.文档,抑或是没人时偷偷看的小视频,都需要保存在硬盘里. 对于很多 Linux 服务器,会进行很多的编译操作.而编译操 ...

  4. iframe中有ajax,设置iframe自适应高度

    ------------------------------------------------------------------- http://www.jb51.net/article/1578 ...

  5. C# 数据操作系列 - 15 SqlSugar 增删改查详解

    0. 前言 继上一篇,以及上上篇,我们对SqlSugar有了一个大概的认识,但是这并不完美,因为那些都是理论知识,无法描述我们工程开发中实际情况.而这一篇,将带领小伙伴们一起试着写一个能在工程中使用的 ...

  6. Java——反射三种方式的效率对比

    转载自:https://blog.csdn.net/aitcax/article/details/52694423 1 使用field(效率最高)             long start = S ...

  7. 远程快速安装mysql

    远程服务器安装mysql数据库 https://www.cnblogs.com/renjidong/p/7047396.html 1.新开的云服务器,需要检测系统是否自带安装mysql # yum l ...

  8. Docker 入门:容器

    容器看着像机器,实际是进程,是一个运行时程序. 要操作一个 Docker 容器,只需要执行 docker container 命令. 可以通过 help 查看 run 运行容器 基础使用: docke ...

  9. openxl模块从excel里面读取数据

    #excel读取数据 from openpyxl import load_workbook class Do_Excel: def __init__(self,file,work_space,inde ...

  10. 3.key的操作

    我们之前使用Redis简单存储了三个参数: 在语句set name jack中,其中name就是一个key.我们Java中的变量名是有一定规则的,比如组成内容可以是“数字”,“字母”以及“下划线”. ...