zoukankan      html  css  js  c++  java
  • 根据星星的层数输出星星(*)_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

  • 相关阅读:
    最详细的hadoop2.2.0集群的HA高可靠的最简单配置
    HIVE 在执行大量数据JOIN的时候,容易产生内存不足的情况
    机器学习的学习笔记1
    AngularJS在IE8的支持
    OC 异常处理
    OC NSString练习
    OC继承
    OC--@property和@synthesize关键字
    OC输入输出
    OC数组和字典简单使用
  • 原文地址:https://www.cnblogs.com/hongten/p/hongten_jinzita.html
Copyright © 2011-2022 走看看