Java黑皮书课后题第5章:*5.18(使用循环语句打印4个图案)使用嵌套的循环语句,编写4个独立的程序打印下面的图案
*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打印到2,第三行从1打印到3……第n行从1打印到n
- 图案2:(假设需要打印lines行)第一行从1打印到lines,第二行从1打印到(lines-1),第三行从1打印到(lines-2)……第n行从1打印到(lines-n+1)
- 图案3:(假设2个空格代替1个数字)分为两部分,一部分为空格、一部分为数字;part空格:第1行打印10个空格,第2行打印8个空格……第n行打印2 * (lines - n)个空格;part数字:第1行从1打印到1,第2行从2打印1……第n行从n打印到1
- 图案4:part空格:第1行打印0个空格,第2行打印2个空格……第n行打印2 * (n - 1)个空格;part数字:第1行从1打印到lines,第2行从1打印到(lines-1)……第n行从1打印到(lines - n + 1)
- 综上:(不计算表头,一共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();}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
