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

打印任意高度的实心菱形

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

     

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

  再依次实现打印。

代码如下:

//打印任意高度的菱形
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…

《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;被疫情困扰的不仅是…

腾讯发布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的指向。以至于当遇到复杂的函数调用时&…

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…

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

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

地理信息技术加持 用数字孪生让城市更“聪明”

文章转载自微信公众号中地数码MapGIS&#xff0c;版权归原作者及刊载媒体所有。相关资料表明&#xff0c;过去二十年&#xff0c;中国智慧城市建设投资巨大&#xff0c;建设的传感网络已经领先全球&#xff0c;但硬件重复建设&#xff0c;多注重单方面的智慧化建设&#xff0c;…

你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)

转http://www.cnblogs.com/zhijianliutang/p/4100103.html 前言 本篇主要是上一篇文章的补充篇&#xff0c;上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和解决方法&#xff0c;可点击查看&#xff0c;我们此篇主要介绍的是SQL Server启动过程中关于用户数据库加载…

可持续发展的人工智能

微软亚洲研究院副院长刘铁岩在 WAIC 2020 微软论坛演讲视频来源&#xff1a;微软研究院AI头条可持续发展是一个非常重要的主题&#xff0c;无论是环保、健康、能源和材料&#xff0c;都与人类的生存和发展息息相关。随着工业的发展和科技的进步&#xff0c;我们看到大气、水质、…

Sqring核心概念

Spring 是大规模企业级框架&#xff0c;用户数量多&#xff0c;数据规模大&#xff0c;功能众多&#xff0c;业务复杂&#xff0c; 性能和安全要求高 灵活多变 Spring框架是轻量级的框架&#xff0c;javaEE的春天&#xff0c;当前主流的框架&#xff0c;一站式的企业应用开发…

台积电2纳米获得重大突破

来源&#xff1a;经济日报&#xff08;台&#xff09;台积电冲刺先进制程&#xff0c;在2纳米研发有重大突破&#xff0c;已成功找到路径&#xff0c;将切入GAA&#xff08;环绕闸极&#xff09;技术&#xff0c;为台积电发展鳍式场效电晶体&#xff08;FinFET&#xff09;取得…

php url乱码java接收,java中url乱码解决方法

java中url乱码解决方法&#xff1a;(推荐&#xff1a;java视频教程)1、将字符串转码&#xff1a;newString(“xxxxx”.getBytes(“iso-8859-1”),”utf-8”)这种转码方式有很大的弊端&#xff0c;因为它是使用指定的字符集将此String编码为 byte 序列&#xff0c;并将结果存储到…

腾讯首次发布 AI 白皮书讲了什么?

来源 | 腾讯研究院&#xff08;转载请注明来源&#xff09;编辑 | 蒲蒲近日&#xff0c;在世界人工智能大会腾讯论坛上&#xff0c;腾讯集团副总裁、腾讯研究院院长司晓正式发布了《腾讯人工智能白皮书&#xff1a;泛在智能》&#xff08;以下简称白皮书&#xff09;。作为腾讯…

php代码怎么修改成laravel,Laravel框架实现即点即改功能的方法分析

本文实例讲述了Laravel框架实现即点即改功能的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;有的时候我们不需要更改大量数据,只需要更改一个字段的时候,我们就用到了即点即改,以用户模块,修改用户名称为例,下图为我的展示模块当我们点击用户名时,会出现一个修改…

人工智能、网络空间对国家核安全的影响

来源&#xff1a;知远战略与防务研究所人工智能技术是一把双刃剑&#xff0c;其在网络空间和核领域的应用&#xff0c;一方面能够为网络安全和核安全提供技术保障&#xff1b;另一方面&#xff0c;人工智能技术也可能为对手所用&#xff0c;通过网络空间对核武器体系进行渗透进…