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