**5.19(打印金字塔形的数字)编写一个嵌套的for循环,打印下面的输出

  • 题目
    • 题目概述
    • 破题
  • 代码
    • 结果
  • 进阶代码
    • 代码内容
    • 输出结果

题目

题目概述

5.19(打印金字塔形的数字)编写一个嵌套的for循环,打印下面的输出

(烦请无视博主在记事本上的排版,书上对齐是非常好看的)

破题

题目要求使用嵌套for循环
一共8行(lines = 8),每行15组元素(一组元素=4个元素,一个元素是一个空格或一位数字),从左到右划分为3部分:

  1. 空格:第一行7组,第二行6组,第三行5组……for(int a = n; a < lines; a++){System.out.print(" ");}
  2. 到最高值(含)左侧的数字部分:从左到右从2的0次方(1)开始,一直到2的n-1次方(最高值)结束;for(int b = 0; b <= n - 1;b++){int num = (int) Math.pow(2, b); //根据num位数分情况输出}
  3. 最高值(不含)到1:if( n != 1){for(int c = n - 2; c >= 0;c–){int num = Math.pow(2, c);+根据num位数分情况输出}}

代码

public class Test5_19 {public static void main(String[] args) {// 定义变量int lines = 8;// for循环for(int n = 1;n <= lines;n++){// 1. 空格:第一行7组,第二行6组,第三行5组……for(int a = n; a < lines; a++)System.out.print("    ");// 2. 到最高值(含)左侧的数字部分(从1到最大值)for(int b = 0; b <= n - 1;b++){int num = (int) Math.pow(2, b);//根据num位数分情况输出if(num / 100 > 0)System.out.printf("%d ", num);else if (num % 100 / 10 > 0)System.out.printf(" %d ", num);elseSystem.out.printf("  %d ", num);}// 3. 最高值(不含)到1if(n != 1){for(int c = n - 2; c >= 0;c--){int num = (int) Math.pow(2, c);//+根据num位数分情况输出if (num / 10 > 0)System.out.printf(" %d ", num);elseSystem.out.printf("  %d ", num);}}// 换行System.out.println();}}
}

结果

进阶代码

感谢 @大海的蓝天白云 的建议
目前输出结果和上面的代码输出差不多
但确实节省了大量空间

代码内容

public class Test5_19 {public static void main(String[] args) {for (int i = 1,j = 7;i <= 128; i *= 2,j--) {int k = j;while (k-- > 0){System.out.print("\t");}for (int m = 1; m <= i; m*=2) {System.out.printf("%4d",m);}for (int m = i/2; m > 0; m/=2) {System.out.printf("%4d",m);}System.out.println();}}
}

输出结果

Java黑皮书课后题第5章:**5.19(打印金字塔形的数字)编写一个嵌套的for循环,打印下面的输出相关推荐

  1. Java黑皮书课后题第9章:*9.6(秒表)设计一个名为StopWatch的类,该类包含……。编写一个测试程序,用于测量使用选择排序对100000个数字进行排序的执行时间

    Java黑皮书课后题第9章:*9.6(秒表)设计一个名为StopWatch的类,该类包含--.编写一个测试程序,用于测量使用选择排序对100000个数字进行排序的执行时间 题目 破题 代码 Test6 ...

  2. Java黑皮书课后题第8章:*8.25(马尔可夫矩阵)一个n*n的矩阵,如果每个元素都是正数,并且每列的元素的和为1,则成为正马尔可夫矩阵。编写下面的方法来检测矩阵是否是马尔可夫矩阵

    *8.25(马尔可夫矩阵)一个n*n的矩阵,如果每个元素都是正数,并且每列的元素的和为1,则成为正马尔可夫矩阵.编写下面的方法来检测矩阵是否是马尔可夫矩阵 题目 题目描述与运行示例 破题 代码 题目 ...

  3. Java黑皮书课后题第7章:**7.3(计算数字的出现次数)编写程序,读取1到100之间的整数,然后计算每个数出现的次数。假定输入0表示结束

    7.3(计算数字的出现次数)编写程序,读取1到100之间的整数,然后计算每个数出现的次数 题目 题目描述+运行示例 破题 法一 法二 代码 法一:硬生生解出来 法二完整代码 题目 题目描述+运行示例 ...

  4. Java黑皮书课后题第6章:*6.4(反序显示一个整数)使用下面的方法体编写方法,反序显示一个整数…例如reverse(3456)返回6543,编写一个测试程序,提示用户输入一个整数,然后显示它的反序

    *6.4(反序显示一个整数)使用下面的方法体编写方法,反序显示一个整数-例如reverse(3456)返回6543,编写一个测试程序,提示用户输入一个整数,然后显示它的反序 题目 题目概述 破题 代码 ...

  5. Java黑皮书课后题第5章:**5.36(商业应用:检测ISBN)使用循环简化编程练习题3.9

    **5.36(商业应用:检测ISBN)使用循环简化编程练习题3.9 题目 题目概述 编程练习题3.9 破题 代码 题目 题目概述 **5.36(商业应用:检测ISBN)使用循环简化编程练习题3.9 编 ...

  6. Java黑皮书课后题第7章:7.16(执行时间)编写程序,随机产生一个包含100 000个整数的数组和一个关键字。估算调用程序清单7-6中的linearSearch方法的执行时间

    7.16(执行时间)编写程序,随机产生一个包含100 000个整数的数组和一个关键字.估算调用程序清单7-6中的linearSearch方法的执行时间 题目 题目描述 程序清单7-6的linearSe ...

  7. Java黑皮书课后题第5章:**5.35(加法)编写程序,计算下面的和:1/(1+根2) + 1/(根2+根3) + 1/(根3+根4)+……1/(根624+根625)

    @[TOC](5.35(加法)编写程序,计算下面的和:1/(1+根2) + 1/(根2+根3) + 1/(根3+根4)+--1/(根624+根625)) 题目 题目概述 5.35(加法)编写程序,计算 ...

  8. Java黑皮书课后题第5章:**5.33(完全数)如果一个正整数等于除它它本身外其他所有除数之和。就称之为完全数。如6是第一个完全数,因为6=1+2+3。10000以下的完全数有4个,编写程序找出

    5.33(完全数)如果一个正整数等于除它它本身外其他所有除数之和.就称之为完全数.如6是第一个完全数,因为6=1+2+3.10000以下的完全数有4个,编写程序找出 题目 题目概述 破题 代码 运行结 ...

  9. Java黑皮书课后题第3章:*3.18(运输成本)一个运输公司使用下面的函数,根据运输重量(以磅为单位)来计算运输成本(美元为单位)。编写程序,提示用户输入包裹重量,显示运输成本

    *3.18(运输成本)一个运输公司使用下面的函数,根据运输重量(以磅为单位)来计算运输成本(美元为单位).编写程序,提示用户输入包裹重量,显示运输成本 题目 题目概述 注意 代码 System.exi ...

  10. 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 ...

最新文章

  1. 为什么toString()方法会自动被调用
  2. 【PP生产订单】入门介绍(八)
  3. C# 编码约定(C# 编程指南)
  4. python整数类型提供了4种进制表示_关于整数类型的 4 种进制表示,哪个选项的描述是正确的?_学小易找答案...
  5. python滚动条变小,python处理滚动条
  6. sh执行文件 参数传递_shell中脚本参数传递的两种方式
  7. 判断激光雷达性能好坏必了解的指标
  8. Java后端实现视频分段渐进式播放
  9. SM1、SM2 、SM3、 SM4算法
  10. TLC5615输出256点正弦波(振幅和频率可调)
  11. 做了6年的Java,java简历包装项目经验
  12. 手机浏览器电脑版有什么作用,手机浏览器如何设置成电脑版
  13. tom邮箱 服务器类型,Tom邮箱 - 帮助中心
  14. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)...
  15. Airbnb放弃国内业务,转投外国怀抱?翅膀硬了吗?
  16. 2020年Java就业前景和就业方向分析!
  17. python分箱统计个数_使用python 计算百分位数实现数据分箱代码
  18. 【azkaban】开启进程秒退
  19. Zoho One平台正式发布 或将颠覆企业软件和SaaS行业
  20. 22位压缩版UUID

热门文章

  1. echarts怎么控制一个点沿着折线移动_计算机怎么识别图像中的直线?
  2. java中的类与对象(浅谈)
  3. 怎样避免每次都解释大量指令?
  4. 自建裸金属实例Oracle RAC上云
  5. 如何设计一个端计算架构?
  6. linux沙箱隔离_Linux沙箱技术介绍
  7. 《王者荣耀》主策划Xavier分享腾讯游戏10年在职经历
  8. 《Invisible Inc.》游戏分析:如何在回合制中塑造紧张刺激的体验?
  9. 软件测试——系统测试总结报告模板
  10. 夏季适合IT程序员的养生小妙招