读书人

java兑现打印金字塔

发布时间: 2012-10-24 14:15:58 作者: rapoo

java实现打印金字塔

package io;import java.util.Arrays;       /**   * 打印一个字符组成的金字塔   */  public class Pyramid {           // 程序入口       public static void main(String[] args) {           printPyramid(21, '*');       }           /**       * 打印一座金字塔。       *       * @param bottom_width 底层宽度。必须是奇数。       * @param ch           组成金字塔的字符       */      private static void printPyramid(int bottom_width, char ch) {           if (bottom_width < 1 || bottom_width % 2 == 0) {               throw new IllegalArgumentException();           }               int height = bottom_width / 2 + 1;  // 金字塔的高度           for (int i = 0; i < height; i++) {               int width = i * 2 + 1;    // 本层的宽度               System.out.println(getLevel(bottom_width, width, ch));           }       }           /**       * 生成金字塔的一行      *       * @param bottom_width 金字塔宽度       * @param width        本层的宽度       * @param ch           要打印的字符      *      * @return 金字塔的一行       */      private static String getLevel(int bottom_width, int width, char ch) {          int space_width = (bottom_width - width) / 2;   // 前面空格的宽度          return expand(' ', space_width) + expand(ch, width);       }           /**       * 生成包含若干个字符的字符串。       *       * @param c     生成字符串的字符      * @param width 字符串的长度       *       * @return 生成的字符串      */      private static String expand(char c, int width) {          char[] chars = new char[width];           Arrays.fill(chars, c);          return new String(chars);      }   }

读书人网 >编程

热点推荐