java输出镂空金字塔
根据用户输入,打印出相应层数的镂空金字塔
1.第一步,打印出金字塔(非镂空)
import java.util.Scanner;
public class test{public static void main(String[] args) {System.out.println("请输入金字塔的层数");Scanner sc = new Scanner(System.in);int towerLevel = sc.nextInt();/*输入层数为5* 1层 1个* 1=1*2-1 空格数4*** 2层 3个* 3=2*2-1 空格数3***** 3层 5个* 5=3*2-1 空格数2******* 4层 7个* 7=4*2-1 空格数1********* 5层 9个* 9=5*2-1 空格数0可以得出 *为 层数*2-1 空格数为总层数-本层数*/for(int i = 1; i <= towerLevel; i++){ //打印每一层,i代表当前层for(int k = 1; k <= towerLevel - i; k++){ //打印当前层的空格,空格数为总层数-本层数System.out.print(" ");}for(int j = 1; j <= i * 2 - 1; j++){ //打印当前层的*,j为当前要打印*在本行中的位置,每行的第一个位置是 j = 1, 最后一个位置是 j=i*2-1System.out.print("*");}System.out.println();}}
}
用户输入5以后,结果为:
2.分析如何打印出镂空金字塔
根据镂空金字塔的图形来看,如果当前层不在最底层,其余层都是只在本行的第一个位置和最后一个位置打印了*,其余位置都为空格,所以打印*的语句前可以加一个if判断条件:当前位置是当前层的第一个 或者 当前位置是当前层的最后一个 或者 当前层是最后一层,用代码体现就是if(j == 1 || j == 2 * i - 1 || i == towerLevel)。
import java.util.Scanner;
public class test{public static void main(String[] args) {System.out.println("请输入金字塔的层数");Scanner sc = new Scanner(System.in);int towerLevel = sc.nextInt();/*输入层数为5* 1层 1个* 1=1*2-1 空格数4*** 2层 3个* 3=2*2-1 空格数3***** 3层 5个* 5=3*2-1 空格数2******* 4层 7个* 7=4*2-1 空格数1********* 5层 9个* 9=5*2-1 空格数0可以得出 *为 层数*2-1 空格数为总层数-本层数*/for(int i = 1; i <= towerLevel; i++){ //打印每一层,i代表当前层for(int k = 1; k <= towerLevel - i; k++){ //打印当前层的空格,空格数为总层数-本层数System.out.print(" ");}for(int j = 1; j <= i * 2 - 1; j++){ //打印当前层的*,j为当前要打印*在本行中的位置,每行的第一个位置是 j = 1, 最后一个位置是 j=i*2-1if(j == 1 || j == 2 * i - 1 || i == towerLevel){System.out.print("*");} else{System.out.print(" ");}}System.out.println();}}
}
用户输入5以后结果为:
这样就打印出了镂空金字塔。
java输出镂空金字塔相关推荐
- 利用java输出星号金字塔
import java.util.Scanner;public class ForForTest1 {public static void main(String[] args) {Scanner s ...
- java金字塔显示_java控制台输出数字金字塔示例分享
/*Java *Author: NealFeng at oschina.net *License: GPLv2+ *Time: 2014/1/17 * *在控制台输出数字金字塔: * ...
- java金字塔数字问题,java控制台输出数字金字塔示例分享
复制代码代码如下: /*Java *Author: NealFeng at oschina.net *License: GPLv2+ *Time: 2014/1/17 * *在控制台输出数字金字塔: ...
- java金字塔显示_Java输出正反金字塔循环
package com.javase.demo; import java.util.Scanner; /** * 金字塔 * @author Mr.Zhang * */ public class Py ...
- 用java Java 画出镂空金字塔 嵌套循环 多重循环控制
写在前面: 最终结果如下图 镂空金字塔问题,我们首先得把问题简化. 简化两个条件: 1.先不镂空 2.前面不加空格,例如这样: 我们可以推测出金字塔的每一层个数的公式为: 2n -1 (n表示层数), ...
- 使用双重循环,输出数字金字塔
代码: package net.text0702;import java.util.Scanner;/*** @author Mr.Wang* 根据输入数字,输出数字金字塔:输入几就是几行,每行输出当 ...
- java实现空心金字塔
前言 最近在学习java,遇到了一个经典打印题目,空心金字塔,初学者记录,根据网上教程,有一句话感觉很好,就是先把麻烦的问题转换成很多的简单问题,最后一一解决就可以了,然后先死后活,先把程序写死,后面 ...
- 【用Java画空心金字塔】
初学Java遇难题,做一个"空心金字塔",上午看了教程后下午上手再次蒙圈,反复观看教程并且深刻思考,和不计其数次的修改才完成, 1.首先需要能输出一个实心金字塔,如图 找到规律层数 ...
- Java输出数组中最长递增子序列的代码
下面内容是关于Java输出数组中最长递增子序列的内容,希望对大伙有较大用途. package com.wzs;import java.util.ArrayList; import java.util. ...
最新文章
- “半真半假”DeepFake换脸也能精准识别?阿里安全提出全新检测方法
- csr_matrix矩阵用法小结
- EnterpriseLibrary数据访问(4)使用数据访问器接收数据
- P5253-丢番图【数论】
- linux iptables 编译,Linux下编译安装iptables
- 《Oracle Life-DBA的一天》海报下载
- android cmake 打印_Android NDK 开发:CMake 使用
- 使用sqlmetal工具自动生成SQL数据库的Linq类文件
- Postfix无法在centos上启动
- JSONArray ja = JSONArray.fromObject(list);//特殊类 用于将list转化为JSON 数据并返回 out.print(ja);...
- 190415每日一句
- 【转】卡巴斯基2011导入key专用工具+卡巴斯基提取key工具(激活码转换key)
- 软件测试面试题整理(三)之工作/项目流程篇
- 【OR】YALMIP 全局最优化
- 中德制造业数字化转型白皮书出炉(附下载)
- linux下mp3编码库libmp3lame的开发使用
- 单载波频域均衡matlab仿真,包括卷积编码维特比译码,矩阵交织,QPSK调制解调,导频插入,MMSE-FDE频域均衡
- 10大耗油,10大省油。
- 颜值高的游戏键盘—HyperX Alloy Origins 60 霓虹粉游戏机械键盘
- MySQL(进阶篇)
热门文章
- vf计算机二级的描述,计算机二级vf共基础知识归纳.doc
- 美团笔试题2021.8.29(第四题求大佬解答)
- 电脑无法开机或开机黑屏——可能是硬盘问题
- 动态规划应用举例_背包问题
- 计算机硬件基础--配置个人电脑
- c# messageboxbutons.ok,MessageBoxIcon.Information 是什么意思
- 7.关于cdn、页面静态化
- HC-05蓝牙模块--------手机与STM32通信(代码编写)(上位机配置)保姆级教程
- Python爬虫 输入城市 获取对应KFC餐厅名字及地址 -- KFC店铺位置抓取
- python入门之函数结构函数的参数_Python 基础之函数初识与函数参数