前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >根据星星的层数输出星星(*)_java版

根据星星的层数输出星星(*)_java版

作者头像
Hongten
发布2018-09-13 15:17:57
1.3K0
发布2018-09-13 15:17:57
举报
文章被收录于专栏:HongtenHongten

在一个java交流群上面看到这样一个图片:

自己看了一下,觉得好玩儿,自己就动手写了一个

运行效果:

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

代码部分:

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

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

代码语言:javascript
复制
 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

代码语言:javascript
复制
 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 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-03-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档