java輸出鏤空金字塔實現(xiàn)案例
根據(jù)用戶輸入,打印出相應(yīng)層數(shù)的鏤空金字塔
1.第一步,打印出金字塔(非鏤空)
import java.util.Scanner; public class test{ public static void main(String[] args) { System.out.println("請輸入金字塔的層數(shù)"); Scanner sc = new Scanner(System.in); int towerLevel = sc.nextInt(); /* 輸入層數(shù)為5 * 1層 1個* 1=1*2-1 空格數(shù)4 *** 2層 3個* 3=2*2-1 空格數(shù)3 ***** 3層 5個* 5=3*2-1 空格數(shù)2 ******* 4層 7個* 7=4*2-1 空格數(shù)1 ********* 5層 9個* 9=5*2-1 空格數(shù)0 可以得出 *為 層數(shù)*2-1 空格數(shù)為總層數(shù)-本層數(shù) */ for(int i = 1; i <= towerLevel; i++){ //打印每一層,i代表當(dāng)前層 for(int k = 1; k <= towerLevel - i; k++){ //打印當(dāng)前層的空格,空格數(shù)為總層數(shù)-本層數(shù) System.out.print(" "); } for(int j = 1; j <= i * 2 - 1; j++){ //打印當(dāng)前層的*,j為當(dāng)前要打印*在本行中的位置,每行的第一個位置是 j = 1, 最后一個位置是 j=i*2-1 System.out.print("*"); } System.out.println(); } } }
用戶輸入5以后,結(jié)果為:
2.分析如何打印出鏤空金字塔
根據(jù)鏤空金字塔的圖形來看,如果當(dāng)前層不在最底層,其余層都是只在本行的第一個位置和最后一個位置打印了*,其余位置都為空格,所以打印*的語句前可以加一個if判斷條件:當(dāng)前位置是當(dāng)前層的第一個 或者 當(dāng)前位置是當(dāng)前層的最后一個 或者 當(dāng)前層是最后一層,用代碼體現(xiàn)就是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("請輸入金字塔的層數(shù)"); Scanner sc = new Scanner(System.in); int towerLevel = sc.nextInt(); /* 輸入層數(shù)為5 * 1層 1個* 1=1*2-1 空格數(shù)4 *** 2層 3個* 3=2*2-1 空格數(shù)3 ***** 3層 5個* 5=3*2-1 空格數(shù)2 ******* 4層 7個* 7=4*2-1 空格數(shù)1 ********* 5層 9個* 9=5*2-1 空格數(shù)0 可以得出 *為 層數(shù)*2-1 空格數(shù)為總層數(shù)-本層數(shù) */ for(int i = 1; i <= towerLevel; i++){ //打印每一層,i代表當(dāng)前層 for(int k = 1; k <= towerLevel - i; k++){ //打印當(dāng)前層的空格,空格數(shù)為總層數(shù)-本層數(shù) System.out.print(" "); } for(int j = 1; j <= i * 2 - 1; j++){ //打印當(dāng)前層的*,j為當(dāng)前要打印*在本行中的位置,每行的第一個位置是 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以后結(jié)果為:
這樣就打印出了鏤空金字塔。
到此這篇關(guān)于java輸出鏤空金字塔實現(xiàn)案例的文章就介紹到這了,更多相關(guān)java鏤空金字塔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot中的WebSocketSession原理詳解
這篇文章主要介紹了SpringBoot中的WebSocketSession原理詳解,傳統(tǒng)的?HTTP?協(xié)議是無法支持實時通信的,因為它是一種無狀態(tài)協(xié)議,每次請求都是獨立的,無法保持連接。為了解決這個問題,WebSocket?協(xié)議被引入,需要的朋友可以參考下2023-07-07mybatis-plus配置控制臺打印完整帶參數(shù)SQL語句的實現(xiàn)
這篇文章主要介紹了mybatis-plus配置控制臺打印完整帶參數(shù)SQL語句,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08IDEA?一直scanning?files?to?index的四種完美解決方法(VIP典藏版)
這篇文章主要介紹了IDEA?一直scanning?files?to?index的四種完美解決方法(VIP典藏版),推薦第四種方法,第四種方法摸索研究后得出,親測好用,需要的朋友參考下吧2023-10-10詳解SpringBoot中的統(tǒng)一功能處理的實現(xiàn)
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何實現(xiàn)統(tǒng)一功能處理,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定借鑒價值,需要的可以參考一下2023-01-01關(guān)于Unsupported Media Type的解決方案
在Web開發(fā)中,415錯誤表示服務(wù)器無法處理請求附帶的媒體格式,本文介紹了導(dǎo)致HTTP 415錯誤的原因以及解決該問題的兩種方法,首先,415錯誤通常是由于客戶端請求的內(nèi)容類型與服務(wù)器期望的不匹配引起的,例如,服務(wù)器可能期望JSON格式的數(shù)據(jù)2024-10-10