代码

/*
空心菱形 层数只能取奇数
*/
public class HollowDiamond {/*** **   ********思路分析化繁为简1. 先打印一个矩形*************************2. 打印半个金字塔*        //第1层 有 1个***       //第2层 有 2个****      //第3层 有 3个*****    //第4层 有 4个******   //第5层 有 5个*3. 打印整个金字塔*       //第1层 有 1个*   2 * 1 -1   有4=(总层数-1)个空格***      //第2层 有 3个*   2 * 2 -1   有3=(总层数-2)个空格*****     //第3层 有 5个*   2 * 3 -1   有2=(总层数-3)个空格*******    //第4层 有 7个*   2 * 4 -1   有1=(总层数-4)个空格*********   //第5层 有 9个*   2 * 5 -1   有0=(总层数-5)个空格4. 打印整个菱形*       //第1层 有 1个*   2 * 1 -1         有3=(总层数/2+1-1)个空格***      //第2层 有 3个*   2 * 2 -1         有2=(总层数/2+1-2)个空格*****     //第3层 有 5个*   2 * 3 -1         有1=(总层数/2+1-3)个空格*******    //第4层 有 7个*   2 * 4 -1         有0=(总层数/2+1-4)个空格*****     //第5层 有 5个*   2 * (5/2-1) -1   有1=(5-总层数/2+1)个空格***      //第6层 有 3个*   2 * (6/2-1) -1   有2=(6-总层数/2+1)个空格*       //第7层 有 1个*   2 * (7/2-1) -1   有3=(7-总层数/2+1)个空格5. 打印空心菱形 *       //第1层 有 1个*   当前行的第一个位置是*,最后一个位置也是** *      //第2层 有 2个*   当前行的第一个位置是*,最后一个位置也是**   *     //第3层 有 2个*   当前行的第一个位置是*,最后一个位置也是**     *    //第4层 有 2个*   当前行的第一个位置是*,最后一个位置也是**   *     //第5层 有 2个*   当前行的第一个位置是*,最后一个位置也是** *      //第6层 有 2个*   当前行的第一个位置是*,最后一个位置也是**       //第7层 有 1个*   当前行的第一个位置是*,最后一个位置也是**/public static void main(String[] args) {// 定义菱形层数,层数只能取奇数,偶数层是没有菱形的int num = 5;for (int i = 1; i <= num; i++) {//控制打印上半部分菱形每层的*个数if (i <= num / 2 + 1) {//在输出*之前,还有输出 对应空格 = 中间层-当前层for (int h = 1; h <= num / 2 + 1 - i; h++) {System.out.print(" ");}for (int j = 1; j <= 2 * i - 1; j++) {//当前行的第一个位置是*,最后一个位置也是*if (j == 1 || j == 2 * i - 1) {System.out.print("*");} else {System.out.print(" ");}}} //控制打印下半部分菱形每层的*个数else {//在输出*之前,还有输出 对应空格 = 当前层-中间层for (int s = 1; s <= i - (num / 2 + 1); s++) {System.out.print(" ");}for (int k = 1; k <= (2 * (num / 2 + 1) - i) * 2 - 1; k++) {//当前行的第一个位置是*,最后一个位置也是*if (k == 1 || k == (2 * (num / 2 + 1) - i) * 2 - 1) {System.out.print("*");} else {System.out.print(" ");}}}// 每打印完一层的*后,就换行 println本身会换行System.out.println("");}}
}

附上效果图:

java-打印空心的菱形相关推荐

  1. 经典题:用Java打印空心菱形

    经典题:用Java打印空心菱形 本题是在打印空心金字塔的基础上进行的,不会的点击下面的链接: 经典题:用Java打印空心金字塔 (1)打印无底空心金字塔 输出如下: 开始运行... 请输入层数 6** ...

  2. 利用Java打印空心菱形

    利用Java打印空心菱形 public class Lx {public static void main(String[] args) { //打出空心菱形for (int i = 1; i < ...

  3. python打印空心长方形_Python程序打印空心半菱形星形图案

    给出一个整数N,任务是打印空心半菱形图案.示例:输出:## ## ## ## ## ##输入:7## ## ## ## ## ## ## #### ## ## ## #下半部分:对于下半部分,使用迭代 ...

  4. 编程打印空心字符菱形

    编程打印空心字符菱形 (10 分) 本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形.所谓"空心菱形"是指:每行由两端为字母.中间为空格的字符串构成,每行的字符串中心对 ...

  5. Shell编程——打印空心/实心菱形

    一.直接打印出菱行 脚本: #!/bin/bash #!/bin/bash for (( i=1;i<10;i++ )) doif [ $i -le 5 ]thenfor (( s=$(( 10 ...

  6. Java —— 打印空心金字塔

    空心金字塔 [代码展示] import java.util.Scanner;public class Pyramid{public static void main(String args[]){Sc ...

  7. 4-10 编程打印空心字符菱形

    本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形.所谓"空心菱形"是指:每行由两端为字母.中间为空格的字符串构成,每行的字符串中心对齐:上半部分相邻两行字符串长度差2, ...

  8. 7-23 编程打印空心字符菱形

    本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形.所谓"空心菱形"是指:每行由两端为字母.中间为空格的字符串构成,每行的字符串中心对齐:上半部分相邻两行字符串长度差2, ...

  9. java打印空心菱形

    看了韩顺平老师的课真是受益匪浅,其中蕴含的化繁为简,拆分问题的思想可以应对这个问题. 首先将问题简单化,先考虑一半的菱形,再打印出每一行的*,之后考虑前面的空格.这样先得到一个实心菱形,之后我们可以知 ...

  10. java 打印空心菱形,用for循环打印出空心菱形程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 请问当行数过大时该程序为什么不能正常显示菱形? 程序如下: public class Test1 { public static void main(St ...

最新文章

  1. linux下如何解压缩zip,tar,tar.gz,tar.bz2文件
  2. 5.1 上网本安装安卓x86_生信工具 | antiSMASH 安装教程
  3. python实验过程心得体会_20192416 实验四《Python程序设计》综合实践报告
  4. 【音频技术:逼近人耳极限】
  5. Java反序列化json内存溢出_fastJson与一起堆内存溢出'血案'
  6. 刷前端面经笔记(二)
  7. 【Kubernetes】浅析基本概念和原理
  8. java 静态导入_Java中静态导入的使用
  9. java 调度器怎么调用_OpenSymphony的Quartz里的作业、调度器使用举例
  10. html页面的ajax请求,【提问】ajax请求返回整个html页面
  11. 东华大学计算机专业在哪个校区,东华大学有几个校区及地址
  12. wps excel 向下选中指定行数并填充根据公式计算好的数据
  13. RxBus的使用及解析
  14. 使用Vlookup函数对数据进行分组
  15. 【区块链108将】千方基金点付大头:投资区块链,不要让过往认知限制你的想象
  16. 软件工程课程设计分组与选题名单
  17. Linux添加路由的方法
  18. 语法基础(三. 类,属性,方法,方法重载,方法重写,构造方法,访问修饰符)
  19. Android 12 预览版发布,64g 手机用户哭了
  20. 安装Adobe软件时显示:您的浏览器或者操作系统不再受支持,您可能需要安装操作系统的最新更新。---部分软件解决方案(只支持Adobe Creative Cloud包括的软件)

热门文章

  1. 华为手机在线将语音转换文字的办公黑科技便签,轻松提高你的工作效率
  2. 「 科研经验 」思考“工程解决方案”的思维
  3. 问题 G: 结义兄弟
  4. delphi 讲的比较详细的多线程(推荐)
  5. SQLyog设置唯一
  6. 大数据处理的关键技术(二)
  7. 【Vue】qq浏览器打开空白
  8. KCL v0.4.4 发布 - 自定义 YAML Manifests 输出以及 Python SDK
  9. 把网页保存成markdowm的方法
  10. Elasticsearch:时间点 API