服务器之家

服务器之家 > 正文

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

时间:2022-01-06 01:04     来源/作者: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以后,结果为:

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

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输出镂空金字塔实现案例的文章就介绍到这了,更多相关java镂空金字塔内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/m0_53688066/article/details/120295718

标签:

相关文章

热门资讯

蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部