简单图形打印(需求分解)

打印任意高度的实心菱形

  菱形的打印是一个相对复杂的需求,我们需要把它分解成为多个简单的需求来完成。

     

  将它看作是两个部分,上面一个三角形,下面一个倒三角形。

  再依次实现打印。

代码如下:

//打印任意高度的菱形
public class GetDiamond {public static void main(String[] args) {getSolidDiamond(9);//传入菱形的高度}/**打印高度为10的实心菱形参数high是菱形的高度*/private static void getSolidDiamond(int high) {/*打印菱形的上半部分*///Math.round(high/2)菱形的上半部分的行数for (int column = 1; column <= Math.round(high / 2); column++) {//前面的打印空格,空格个数为高度一半减一个for (int row = 0; row < Math.round(high / 2) - column; row++) {System.out.print(" ");}//打印“*”个数,“*”的个数等于行数乘2减一个for (int count = 0; count < column * 2 - 1; count++) {System.out.print("*");}//每打印完一行,换一行
            System.out.println();}/*菱形的下半部分,与上半部分对称*/for (int column = Math.round(high / 2) - 1; column >= 1; column--) {//打印前面的空格,空格个数为总高度的1/2减去当前行数for (int row = 0; row < Math.round(high / 2) - column; row++) {System.out.print(" ");}//打印“*”个数,“*”的个数等于行数乘2减一个for (int count = 0; count < column * 2 - 1; count++) {System.out.print("*");}//每打印完一行,换一行
            System.out.println();}}
}
==================
运行结果: 
   *
  ***
 *****
*******
 *****
  ***
   *

打印任意高度的空心菱形

  

  依旧分成上下两个部分,依次解决。

//打印任意高度的菱形
public class GetDiamond {public static void main(String[] args) {getHollowDiamond(9);//传入菱形的高度
    }/**打印高度为10的空心菱形参数high是菱形的高度*/private static void getHollowDiamond(int high) {/*打印菱形的上半部分*///Math.round(high/2)四舍五入方法,菱形的上半本分的行数for (int column = 1; column <= Math.round(high / 2); column++) {//前面的空格数,空格的个数为总高度的1/2减当前行数for (int row = 0; row < Math.round(high / 2) - column; row++) {System.out.print(" ");}//打印中间*,第一行没有星号if (column != 1) {System.out.print("*");}//打印中间空格数,每一行有当前行数减一乘二减一个空格for (int row = 0; row < (column - 1) * 2 - 1; row++) {System.out.print(" ");}//每一行都有一个菱形System.out.println("*");}/*菱形的下半部分与上半部分对称*///Math.round(high/2)四舍五入方法,菱形的上半本分的行数for (int column = Math.round(high / 2) - 1; column >= 1; column --) {//前面的空格数,空格的个数为总高度的1/2减当前行数for (int row = 0; row < Math.round(high / 2) - column; row++) {System.out.print(" ");}//打印中间*,第一行没有星号if (column != 1) {System.out.print("*");}//打印中间空格数,每一行有当前行数减一乘二减一个空格for (int row = 0; row < (column - 1) * 2 - 1; row++) {System.out.print(" ");}//每一行都有一个菱形System.out.println("*");}}
===================
运行结果:
   *
  * *
 *   *
*     *
 *   *
  * *
   *

   这个例子是让我们增强对复杂业务的分析能力。当我们得到一个复杂的业务时候,任何人都不可能一次性将代码写出来,我们要对它进行分析,将它分解为多个简单的需求,然后一一实现。

转载于:https://www.cnblogs.com/yxiaooutlook/p/7653219.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器人研究员的崛起 |《自然》论文

来源&#xff1a;Nature自然科研根据本周《自然》发表的一篇论文A mobile robotic chemist&#xff0c;汽车装配线上常见的机器人经过改造后&#xff0c;可以在化学实验室内和人类一起工作。该机器人和机器学习算法相连&#xff0c;能够在给定需要检验什么假设的情况下&#xf…

python 求最大值实例_Python 求数组局部最大值的实例

求数组局部最大值给定一个无重复元素的数组A[0…N-1]&#xff0c;求找到一个该数组的局部最大值。规定&#xff1a;在数组边界外的值无穷小。即&#xff1a;A[0]&#xff1e;A[-1]&#xff0c;A[N-1] &#xff1e;A[N]。显然&#xff0c;遍历一遍可以找到全局最大值&#xff0c…

Python+selenium第一个自动化脚本

第一个自动化脚本&#xff08;用Python写的&#xff09; from selenium import webdriver #从selenium导入webdriber driverwebdriber.Firefox() #打开Firefox软件 driver.get("http://baidu.com") #在Firefox的URL里输入百度&#xff0c;打开百度页面 driver.f…

《EE Times》评出2020年全球最值得关注的18家传感器公司

来源&#xff1a;仪商网每年&#xff0c;美国著名电子技术类杂志《EE Times》都会评选出全球值得关注的新创半导体公司排行榜。今年已轮到了第20届&#xff0c;相较以往&#xff0c;最大的变化是这一届的榜单由60家增至100家。在今年的榜单中&#xff0c;保留了上一届中的49家公…

webstorm配置Monokai-Sublime.jar主题

https://github.com/OtaK/jetbrains-monokai-sublime 导入下载的Monokai-Sublime.jar jar包即可使用。 转载于:https://www.cnblogs.com/sirwang/p/7657975.html

用洪小文,人工智能予力永续未来

来源&#xff1a; 微软研究院AI头条 二十一世纪第三个十年的开局时刻有些艰难。当许多人还在为澳大利亚森林大火和席卷东非、西亚的蝗虫灾害而担忧时&#xff0c;一场突如其来的疫情又在全球各国次第爆发&#xff0c;迄今仍未有止息迹象。事实上&#xff0c;被疫情困扰的不仅是…

python 通信模块_python 多进程通信模块

多进程通信方法好多&#xff0c;不一而数。刚才试python封装好嘅多进程通信模块 multiprocessing.connection。简单测试一下&#xff0c;效率还可以&#xff0c;应该系对socket封装&#xff0c;效率可以达到4krps&#xff0c;可以满足好多方面嘅需求啦。附代码如下:client#!/us…

关于h5中背景音乐的自动播放

音乐的自动播放属性&#xff0c;这里也介绍一下&#xff1a; <audio controls"controls" autoplay"autoplay"><source src"song.ogg" type"audio/ogg" /><source src"song.mp3" type"audio/mpeg" …

腾讯发布2020人工智能白皮书:泛在智能

来源&#xff1a;腾讯研究院7月10日&#xff0c;在世界人工智能大会腾讯论坛上&#xff0c;腾讯集团副总裁、腾讯研究院院长司晓正式发布了《腾讯人工智能白皮书&#xff1a;泛在智能》&#xff08;以下简称白皮书&#xff09;。作为腾讯第一份全面介绍AI、阐述腾讯人工智能布局…

相学java_从这两套题,重新认识JS的this、作用域、闭包、对象

日常开发中&#xff0c;我们经常用到this。例如用Jquery绑定事件时&#xff0c;this指向触发事件的DOM元素&#xff1b;编写Vue、React组件时&#xff0c;this指向组件本身。对于新手来说&#xff0c;常会用一种意会的感觉去判断this的指向。以至于当遇到复杂的函数调用时&…

洛谷1373 小a和uim之大逃离

https://www.luogu.org/problem/show?pid1373 题目背景 小a和uim来到雨林中探险。突然一阵北风吹来&#xff0c;一片乌云从北部天边急涌过来&#xff0c;还伴着一道道闪电&#xff0c;一阵阵雷声。刹那间&#xff0c;狂风大作&#xff0c;乌云布满了天空&#xff0c;紧接着豆大…

java 日期处理工具类_Java日期处理工具类DateUtils详解

本文实例为大家分享了Java日期处理工具类DateUtils的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下import java.sql.Timestamp;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/*** */public…

Ipython知识点总结

初识Python&#xff1a; Python是一种面向对象、直译式计算机程序语言。也是一种功能强大而完善的通用型语言&#xff0c;已经具有十多年的发展历史&#xff0c;成熟且稳定。Python 具有脚本语言中最丰富和强大的类库&#xff0c;足以支持绝大多数日常应用。 Python语法简捷而清…

光刻技术的“鬼斧”之变

来源:脑极体 在我们今天看来&#xff0c;晶体管发明以后&#xff0c;集成电路的出现一直到今天超大规模集成电路的出现&#xff0c;似乎是一件水到渠成的事情。但是如果回到半导体产业初兴的历史现场&#xff0c;我们就会发现没有任何一项关键技术的突破是“必然产生”的。&…

php设置html全局路径_PHPCMS V9 URL去掉或修改/html路径的方法

PHPCMS V9 URL去掉或修改/html路径的方法&#xff0c;在后台找了好长时间没有找到在哪儿可以设置栏目生成的前缀路径/html,不过最终还是找到了。修改配置文件。找到\caches\configs\system.php 找到“html_root”这一项&#xff0c;然后把/html这个字符串删除即可。更新缓存&am…

[PA 2014]Kuglarz

Description 魔术师的桌子上有n个杯子排成一行&#xff0c;编号为1,2,…,n&#xff0c;其中某些杯子底下藏有一个小球&#xff0c;如果你准确地猜出是哪些杯子&#xff0c;你就可以获得奖品。花费c_ij元&#xff0c;魔术师就会告诉你杯子i,i1,…,j底下藏有球的总数的奇偶性。采…

城市大脑从起源到终极状态的7个阶段

0.序言21世纪以来&#xff0c;前沿科技领域出现诸多“大脑”概念&#xff0c;如谷歌大脑&#xff0c;百度大脑&#xff0c;阿里大脑&#xff0c;360安全大脑&#xff0c;腾讯超级大脑等&#xff0c;城市大脑&#xff0c;城市神经网络&#xff0c;工业大脑&#xff0c;航空大脑&…

php7 字符串,php7 参数、整形及字符串处理机制修改实例分析

本文实例讲述了php7 参数、整形及字符串处理机制修改。分享给大家供大家参考&#xff0c;具体如下&#xff1a;参数处理机制修改一、重复参数命名不再支持。重复的参数命名不再支持。比如下面的代码执行的时候会报错&#xff1a;public function foo($a, $b, $unused, $unused)…

【转】成功的背后

转载&#xff1a;来自CSDN第一名博主&#xff1a;http://blog.csdn.net/phphot/article/details/2187505 成功的背后&#xff0c;有着许多不为人知的故事&#xff0c;而正是这些夹杂着泪水和汗水的过去&#xff0c;才成就了一个个走向成功的普通人。 凌晨两点半&#xff0c;早已…