java输出镂空金字塔实现案例

 更新时间:2021年09月16日 11:13:10   作者:MFDouble_G  
小编最近接到领导安排,要求根据用户输入,打印出相应层数的镂空金字塔效果,本文分步骤通过实例代码给大家介绍的非常详细,需要的朋友参考下吧

根据用户输入,打印出相应层数的镂空金字塔 

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-1
					System.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-1
				if(j == 1 || j == 2 * i - 1 || i == towerLevel){
					System.out.print("*");
				} else{
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
}

用户输入5以后结果为:

这样就打印出了镂空金字塔。

到此这篇关于java输出镂空金字塔实现案例的文章就介绍到这了,更多相关java镂空金字塔内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot实现图片识别文字的四种方式小结

    SpringBoot实现图片识别文字的四种方式小结

    本文主要介绍了SpringBoot实现图片识别文字的四种方式,包括Tess4J,百度智能云,阿里云,腾讯云这四种,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Java编程二项分布的递归和非递归实现代码实例

    Java编程二项分布的递归和非递归实现代码实例

    这篇文章主要介绍了Java编程二项分布的递归和非递归实现代码实例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • java中MVC模式与三层架构

    java中MVC模式与三层架构

    这篇文章主要让我们理解MVC模式和三层架构的基础知识,有兴趣的同学可以阅读,借鉴参考一下
    2023-03-03
  • Java计时新姿势StopWatch的使用方法详解

    Java计时新姿势StopWatch的使用方法详解

    这篇文章主要给大家介绍了关于Java计时新姿势StopWatch的相关资料,以及java 中使用StopWatch来计算时间差的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • Java计算交集,差集,并集的方法示例

    Java计算交集,差集,并集的方法示例

    这篇文章主要介绍了Java计算交集,差集,并集的方法,结合实例形式简单分析了java集合运算的简单操作技巧,需要的朋友可以参考下
    2017-10-10
  • Java-IO流实验

    Java-IO流实验

    流是一种抽象概念,它代表了数据的无结构化传递。。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出,希望能给您带来帮助
    2021-06-06
  • Spring Boot 集成Shiro的多realm配置过程

    Spring Boot 集成Shiro的多realm配置过程

    这篇文章主要介绍了Spring Boot 集成Shiro的多realm配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • SpringBoot整合mybatis常见问题(小结)

    SpringBoot整合mybatis常见问题(小结)

    这篇文章主要介绍了SpringBoot整合mybatis常见问题(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • JAVA通过HttpClient发送HTTP请求的方法示例

    JAVA通过HttpClient发送HTTP请求的方法示例

    本篇文章主要介绍了JAVA通过HttpClient发送HTTP请求的方法示例,详细的介绍了HttpClient使用,具有一定的参考价值,有兴趣的可以了解一下
    2017-09-09
  • 使用Java实现先查询缓存再查询数据库

    使用Java实现先查询缓存再查询数据库

    这篇文章主要介绍了使用Java实现先查询缓存再查询数据库,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07

最新评论