根据星星的层数输出星星(*)_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 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

P1378 油滴扩展

题目描述 在一个长方形框子里,最多有N(0≤N≤6)个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界。必...

2748
来自专栏小樱的经验随笔

Wannafly模拟赛 A.矩阵(二分答案+hash)

矩阵 时间限制:1秒 空间限制:131072K 题目描述 给出一个n * m的矩阵。让你从中发现一个最大的正方形。使得这样子的正方形在矩阵中出现了至少两次。输出...

2905
来自专栏Script Boy (CN-SIMO)

Codeforces Round #234A

Inna and choose option     题意: 一个由12个字符('O'或'X')组成的字符串,这12个字符可以排列成a*b(a*b=12)的...

2230
来自专栏PaddlePaddle

【进阶篇】支持双层序列作为输入的Layer

导语 PaddlePaddle 高度支持灵活和高效的循环神经网络配置。本周进阶篇推文将围绕RNN模型展开,指导你如何在 PaddlePaddle 中配置和使用循...

28810
来自专栏文武兼修ing——机器学习与IC设计

logN复杂度估算与一些示例logN复杂度估算logN复杂度算法举例

logN复杂度估算 logN复杂度的算法可以认为具有以下特性: 用常数时间将问题的大小削减为某一部分(通常是1/2) 例如分治法求最大子串问题,将一个$O(N...

2936
来自专栏偏前端工程师的驿站

代数几何:点,线,抛物线,圆,球,弧度和角度

一, 笛卡尔坐标系                         ? 笛卡尔坐标系是数学中的坐标系,而计算机中则采用屏幕坐标系统. ? 而三维坐标系则没有一个...

2428
来自专栏小樱的经验随笔

MATLAB命令大全+注释小结

一、常用对象操作:除了一般windows窗口的常用功能键外。 1、!dir 可以查看当前工作目录的文件。   !dir& 可以在dos状态下查看。 2、who ...

3344
来自专栏机器学习算法工程师

经典算法题之Maximal Square

作者:叶 虎 编辑:邓高锦 Maximal Square是道非常有意思的算法题。它是一个典型的动态规划问题,同时也是2017京东面试题,2016华为机考题...

4099
来自专栏CreateAMind

keras doc 7 Pooling Connceted Recurrent Embedding Activation

‘th’模式下,为形如(samples,channels, rows,cols)的4D张量

1193
来自专栏Java Web

最长公共子序列问题

问题描述: 求两个字符序列的公共最长子序列。 ---- 最长公共子串 在回到子序列问题之前,先来了解一下子串的问题。 例如,HISH和FISH两个字符序列的公...

3504

扫码关注云+社区