*5.18(使用循环语句打印4个图案)使用嵌套的循环语句,编写4个独立的程序打印下面的图案

  • 题目
    • 题目概述
    • 破题
  • 代码

题目

题目概述

*5.18(使用循环语句打印4个图案)使用嵌套的循环语句,编写4个独立的程序打印下面的图案

破题

可参考5.17内容:点击这里直达,或者复制以下URL到浏览器:

https://blog.csdn.net/weixin_46356698/article/details/119847832
打印金字塔这类题目需要使用循环+printf()

  1. 图案1:第一行从1打印到1,第二行从1打印到2,第三行从1打印到3……第n行从1打印到n
  2. 图案2:(假设需要打印lines行)第一行从1打印到lines,第二行从1打印到(lines-1),第三行从1打印到(lines-2)……第n行从1打印到(lines-n+1)
  3. 图案3:(假设2个空格代替1个数字)分为两部分,一部分为空格、一部分为数字;part空格:第1行打印10个空格,第2行打印8个空格……第n行打印2 * (lines - n)个空格;part数字:第1行从1打印到1,第2行从2打印1……第n行从n打印到1
  4. 图案4:part空格:第1行打印0个空格,第2行打印2个空格……第n行打印2 * (n - 1)个空格;part数字:第1行从1打印到lines,第2行从1打印到(lines-1)……第n行从1打印到(lines - n + 1)
  5. 综上:(不计算表头,一共lines行)第n行:
    ①(图案1数字部分)打印数字从1到n;
    ②(图案1空格部分)打印2 * (lines - n)个空格;
    ③(分隔)打印3个空格来分隔不同图案;
    ④(图案2数字部分)从1打印到(lines-n+1);
    ⑤(图案2空格部分)打印2 * (n - 1)个空格;
    ⑥(分隔)打印3个空格来分隔不同图案;
    ⑦(图案3空格部分)打印2 * (lines - n)个空格;
    ⑧(图案3数字部分)从n打印到1;
    ⑨(分隔)打印3个空格来分隔不同图案;
    ⑩(图案4空格部分)打印2 * (n - 1)个空格;
    ⑪(图案4数字部分)从1打印到(lines - n + 1)

代码

public class Test5_18 {public static void main(String[] args) {// 0:打印表头System.out.println("图案1           图案2           图案3           图案4");int lines = 6;for(int n = 1;n <= lines;n++){// ①(图案1数字部分)打印数字从1到n;for(int a = 1;a <= n;a++)System.out.printf("%d ", a);// ②(图案1空格部分)打印2 * (lines - n)个空格;if(lines != n){for(int b = lines - n;b > 0;b--)System.out.print("  ");}// ③(分隔)打印3个空格来分隔不同图案;System.out.print("    ");// ④(图案2数字部分)从1打印到(lines-n+1);for(int c = 1;c < (lines - n + 2); c++){System.out.printf("%d ", c);}// ⑤(图案2空格部分)打印2 * (n - 1)个空格;if(n != 1){for(int d = 1;d <= n - 1;d++)System.out.print("  ");}// ⑥(分隔)打印3个空格来分隔不同图案;System.out.print("    ");// ⑦(图案3空格部分)打印2 * (lines - n)个空格;if(n != 6){for(int e = 1;e < (lines - n + 1);e++)System.out.print("  ");}// ⑧(图案3数字部分)从n打印到1;for(int f = n; f > 0;f--)System.out.printf("%d ",f);// ⑨(分隔)打印3个空格来分隔不同图案;System.out.print("    ");// ⑩(图案4空格部分)打印2 * (n - 1)个空格;if(n != 1){for(int g = 1;g < n;g++)System.out.print("  ");}// ⑪(图案4数字部分)从1打印到(lines - n + 1)for(int h = 1;h < lines - n + 2;h++)System.out.printf("%d ", h);// 换行System.out.println();}}
}

Java黑皮书课后题第5章:*5.18(使用循环语句打印4个图案)使用嵌套的循环语句,编写4个独立的程序打印下面的图案相关推荐

  1. Java黑皮书课后题第5章:**5.21(金融应用:比较不同利率下的贷款)编写程序,让用户输入输入贷款总额和以年为单位的贷款期限,然后显示利率从5%到8%每次递增1/8的各种利率下,每月支付额和总支付

    **5.21(金融应用:比较不同利率下的贷款)编写程序,让用户输入输入贷款总额和以年为单位的贷款期限,然后显示利率从5%到8%每次递增1/8的各种利率下,每月支付额和总支付 题目 题目概述 运行示例 ...

  2. Java黑皮书课后题第5章:*5.9(找出得最高分的前两个学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生

    *5.9(找出得最高分的前两个学生)编写程序,提示用户输入学生的个数.每个学生名字及分数,最后显示获得最高分的学生名字.次高分的学生名字 题目 题目概述 next()读取一个字符与nextLine() ...

  3. Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值

    7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...

  4. Java黑皮书课后题第7章:7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数。编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值

    7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数.编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值 题目 题目描述 破题 代码 运行实例 题 ...

  5. Java黑皮书课后题第6章:*6.5(对三个数排序)使用下面的方法头编写方法,按升序显示三个数

    *6.5(对三个数排序)使用下面的方法头编写方法,按升序显示三个数 题目 题目概述 破题 代码:排序 运行结果 题目 题目概述 *6.5(对三个数排序)使用下面的方法头编写方法,按升序显示三个数: p ...

  6. Java黑皮书课后题第6章:*6.16(一年的天数)使用下面的方法体编写一个方法,返回一年的天数。编写一个测试程序,显示从2000年到2020年间每年的天数

    *6.16(一年的天数)使用下面的方法体编写一个方法,返回一年的天数.编写一个测试程序,显示从2000年到2020年间每年的天数 题目 题目描述 破题 本题代码 运行示例 题目 题目描述 *6.16( ...

  7. Java黑皮书课后题第5章:5.26(计算e)下面的数列可以近似计算e,编写程序显示i=10000、20000、30000…100000时值

    5.26(计算e)下面的数列可以近似计算e,编写程序显示i=10000.20000.30000-100000时e值 题目 题目概述 代码 运算结果 题目 题目概述 5.26(计算e)下面的数列可以近似 ...

  8. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

  9. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  10. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字

    Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...

最新文章

  1. R语言dplyr包的mutate函数将列添加到dataframe中或者修改现有的数据列:使用na_if()函数将0值替换为NA值、负收入替换为NA值
  2. C++ Opengl 粒子系统(Particles)源码
  3. C++ 基本数据类型 的 字节数
  4. (Docker实战) 第五篇:建立持续集成环境02
  5. 限制只允许某个进程调用库
  6. 黑盒测试和白盒测试之间的差别
  7. android色温值转成rgb
  8. java服务器接收coap协议数据_CoAP协议-以Java为例的Californium初步实现
  9. 计算机及应用自考好过吗,希望有经验的给我分析一下,我想自考计算机及应用!...
  10. 快速分割多个视频,生成每个视频的m3u8
  11. js为li列表添加点击事件
  12. HC32L130基于Xmodem协议实现IAP串口在线升级
  13. Debain 安装图形化界面 GNome
  14. suppo aaa 0.75-php,fastsupport-cn
  15. 漫谈程序员系列:快来约这些女生,保你脱单
  16. 【keepalived】keepalived简介及配置文件详解
  17. 抖音服务器维护播放为零,抖音播放量0怎么回事啊?抖音播放量怎么突然变0?...
  18. luckySheet+POI+EasyExcel实现在线excel模版的导出和数据填充
  19. 郁闷!今天淘宝被差评
  20. Python tkinter自定义多选下拉列表框

热门文章

  1. chm转pdf_简历是以PDF还是Word格式提交的?
  2. Flink+Hologres亿级用户实时UV精确去重最佳实践
  3. 探秘RocketMQ源码——Series1:Producer视角看事务消息
  4. 自研云原生数据仓库AnalyticDB再破权威评测TPC-DS世界纪录!
  5. 为什么做技术 PM 这么难?
  6. 零基础学Java编程一定要上Java培训机构吗
  7. 游戏服务器的架构演进
  8. MySQL复习资料(八)——MySQL-事务
  9. 10·24【运维工程师也过节】【运维MySQL大礼包】
  10. ASCII可显示字符