根據星星的層數輸出星星(*)_java版


在一個java交流群上面看到這樣一個圖片:

自己看了一下,覺得好玩兒,自己就動手寫了一個

運行效果:

=============================================================

代碼部分:

=============================================================

/UUUUU_Test/src/com/b510/jinzita/JinZiTa.java

 

 1 /**
 2  * 
 3  */
 4 package com.b510.jinzita;
 5 
 6 /**
 7  * 星星數<br>
 8  * 根據事先規定的星星層數,按照(2*n-1)的方式輸出:第一層一個"*",第二層三個"*",第三層五個"*"....以此類推。<br>
 9  * 對於星星的數量我們可以根據算法:(2*n-1)方式得到星星數量.<br>
10  * 其次就是每一層的空格數量啦:這個我們可以從最后一層來找規律...第n層有0個空格(即:n-n=0),第n-1層有1個空格(即:n-(n-1)=1),第n-2層有兩個空格(即:n-(n-2)=2)....<br>
11  * 所以空格數量我們可以通過方法:getBlanks(int length)獲取得到。
12  * 
13  * @author hongten<br>
14  * @date 2013-3-10
15  */
16 public class JinZiTa {
17     /** 層數 */
18     public static final int LAYERS = 10;
19     /** 空格 */
20     public static final String BLANK_1 = " ";
21     /** 星星 */
22     public static final String START_1 = "*";
23 
24     public static void main(String[] args) {
25         showTa(LAYERS);
26     }
27 
28     /**
29      * 輸出金字塔
30      * 
31      * @param number
32      *            金字塔層數
33      */
34     public static void showTa(int number) {
35         if (number >= 1) {
36             for (int i = 1; i <= number; i++) {
37                 System.out.println(getBlanks(number - i) + getStars(2 * i - 1));
38             }
39         } else {
40             System.out.println("你輸入的數[" + number + "]不在處理的范圍中,請輸入大於或等於1的數");
41         }
42     }
43 
44     /**
45      * 生成空格數
46      * 
47      * @param length
48      *            空格的長度
49      * @return
50      */
51     public static String getBlanks(int length) {
52         StringBuffer blanks = new StringBuffer();
53         for (int i = 0; i < length; i++) {
54             blanks.append(BLANK_1);
55         }
56         return blanks.toString();
57     }
58 
59     /**
60      * 生成星星數
61      * 
62      * @param length
63      * @return
64      */
65     public static String getStars(int length) {
66         StringBuffer blanks = new StringBuffer();
67         for (int i = 0; i < length; i++) {
68             blanks.append(START_1);
69         }
70         return blanks.toString();
71     }
72 }

 

生成有鏤空的金字塔....

運行效果:

=============================================================

代碼部分:

=============================================================

/UUUUU_Test/src/com/b510/jinzita/JinZiTaBlank.java

 

 1 /**
 2  * 
 3  */
 4 package com.b510.jinzita;
 5 
 6 /**
 7  * 星星數<br>
 8  * 根據事先規定的星星層數,按照(2*n-1)的方式輸出:第一層一個"*",第二層三個"*",第三層五個"*"....以此類推。<br>
 9  * 對於星星的數量我們可以根據算法:(2*n-1)方式得到星星數量.<br>
10  * 其次就是每一層的空格數量啦:這個我們可以從最后一層來找規律...第n層有0個空格(即:n-n=0),第n-1層有1個空格(即:n-(n-1)=1),第n-2層有兩個空格(即:n-(n-2)=2)....<br>
11  * 所以空格數量我們可以通過方法:getBlanks(int length)獲取得到。
12  * 
13  * @author hongten<br>
14  * @date 2013-3-10
15  */
16 public class JinZiTaBlank {
17     /** 層數 */
18     public static final int LAYERS = 10;
19     /** 空格 */
20     public static final String BLANK_1 = " ";
21     /** 星星 */
22     public static final String START_1 = "*";
23 
24     public static void main(String[] args) {
25         showTa(LAYERS);
26     }
27 
28     /**
29      * 輸出金字塔
30      * 
31      * @param number
32      *            金字塔層數
33      */
34     public static void showTa(int number) {
35         if(number >= 1){
36             for (int i = 1; i <= number; i++) {
37                 if(i==number){
38                     System.out.println(getBlanks(number - i) + getStars(2 * i - 1));
39                 }else{
40                     System.out.println(getBlanks(number - i) + getBlankStars(2 * i - 1));
41                 }
42             }
43         }else{
44             System.out.println("你輸入的數["+number+"]不在處理的范圍中,請輸入大於或等於1的數");
45         }
46     }
47 
48     /**
49      * 生成空格數
50      * 
51      * @param length
52      *            空格的長度
53      * @return
54      */
55     public static String getBlanks(int length) {
56         StringBuffer blanks = new StringBuffer();
57         for (int i = 0; i < length; i++) {
58             blanks.append(BLANK_1);
59         }
60         return blanks.toString();
61     }
62 
63     /**
64      * 生成含有空格的星星數
65      * 
66      * @param length
67      * @return
68      */
69     public static String getBlankStars(int length) {
70         StringBuffer blanks = new StringBuffer();
71         for (int i = 0; i < length; i++) {
72             if (i == 0 || i == length - 1) {
73                 blanks.append(START_1);
74             } else {
75                 blanks.append(BLANK_1);
76             }
77         }
78         return blanks.toString();
79     }
80     
81 
82     /**
83      * 生成星星數
84      * 
85      * @param length
86      * @return
87      */
88     public static String getStars(int length) {
89         StringBuffer blanks = new StringBuffer();
90         for (int i = 0; i < length; i++) {
91             blanks.append(START_1);
92         }
93         return blanks.toString();
94     }
95 }

 

如果大家有更好的方法,可以一起探討....

I'm Hongten

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM