Java打印菱形(空格菱形)(星星之间有空格)
生活随笔
收集整理的這篇文章主要介紹了
Java打印菱形(空格菱形)(星星之间有空格)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
打印如下圖形:
? ? ? ?*
? ? ? * *?
? ? * * * *?
? * * * * * *?
* * * * * * * *?
? * * * * * *?
? ? * * * *?
? ? ? * *?
? ? ? ?*
就是下圖這種:? ? 每一個和每一個星星之間有一個空格的,輸入偶數層的話再次進行輸入
可以輸入層數,因為圖案只有奇數次的層,所以只能輸入奇數的層數
有更好的方法或者更簡單的方法,可以評論下
代碼如下:
import java.util.Scanner; /*打印如下圖案:** ** * * ** ** */ public class Star {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (true) {System.out.print("請輸入奇數層數:");// 要打印的層數int layer_num = scanner.nextInt();// 星星最多的一層的那一層的層數int star_most_layer_num = (layer_num / 2) + 1;// 星星最多的一層下面還剩下多少層int layer_surplus = layer_num / 2;//第一層空格數int first_em = layer_num-2;//第二層的空格數int secord_em = layer_num-3;// 星星最多的一層的星星個數int star_most_count = layer_num - 1;// 從第二層開始星星的個數int star_start_num = 2;// 從最多的一層開始倒數的層數的空格數int invert_em = 2;// 從最多的一層開始倒數的層數的星星數int invert_star_num = layer_num-3;if(layer_num%2!=0) {// 先打印包括星星最多的一行的前幾行for(int i=1;i<=star_most_layer_num;i++) {if(i==1) {for(int j=1;j<=first_em;j++) {System.out.print(" ");}System.out.println("*");}else if ((i>1 && i<star_most_layer_num)) {for(int k=1;k<=secord_em;k++) {System.out.print(" ");}for(int m=1;m<=star_start_num;m++) {System.out.print("*");System.out.print(" ");}star_start_num = star_start_num + 2;secord_em = secord_em - 2;System.out.println();}else if (i==star_most_layer_num){for(int j=1;j<=star_most_count;j++) {System.out.print("*");System.out.print(" ");}System.out.println();}}for(int i=1;i<=layer_surplus;i++) {if(i!=layer_surplus) {for(int m=1;m<=invert_em;m++) {System.out.print(" ");}invert_em = invert_em + 2;for(int k=1;k<=invert_star_num;k++) {System.out.print("*");System.out.print(" ");}invert_star_num = invert_star_num - 2;System.out.println();}else {for(int j=1;j<=first_em;j++) {System.out.print(" ");}System.out.println("*");}}break;}}} }運行截圖:
?
總結
以上是生活随笔為你收集整理的Java打印菱形(空格菱形)(星星之间有空格)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.Python算法之枚举算法
- 下一篇: 2.设计模式中状态模式(对象的行为模式)