经典打印金字塔

74 阅读1分钟
//打印金字塔,由易到难
public static void main(String[] args) {

    /**
     * *****
     * *****
     * *****
     * *****
     * *****
     */
    for (int i = 1; i <= 5; i++) {
        System.out.println("*****");
    }


    /**
     * *                第1层   1个*
     * **               第2层   2个*
     * ***              第3层   3个*
     * ****             第4层   4个*
     * *****            第5层   5个*
     */
    //得出当前层数 = 当前层的*数
    for (int i = 1; i <= 5; i++) {//i表示层数
        //控制每一层*的个数
        for (int j = 1; j <= i; j++) {
            System.out.print("*");
        }
        System.out.println();
    }

    //可引申出九九乘法表
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++) {
            System.out.print(j + "*" + i + "=" + (i * j) + "\t");
        }
        System.out.println();
    }

    /**
     *     *                第1层   1个* = 2x层数-1       4个空格 = 5-1
     *    ***               第2层   3个* = 2x层数-1       3个空格 = 5-2
     *   *****              第3层   5个* = 2x层数-1       2个空格 = 5-3
     *  *******             第4层   7个* = 2x层数-1       1个空格 = 5-4
     * *********            第5层   9个* = 2x层数-1       0个空格 = 5-5
     */
    //得出在每一层打印*之前要先打印空格,每一层空格数 = 总层数 - 当前层
    for (int i = 1; i <= 5; i++) {//i表示层数
        //在输出*之前还要输出对应空格
        //对应空格 = 总层数 - 当前层
        for (int k = 1; k <= 5 - i; k++) {
            System.out.print(" ");
        }

        //控制每一层*的个数
        for (int j = 1; j <= 2 * i - 1; j++) {
            System.out.print("*");
        }
        System.out.println();
    }

    /**
     *     *
     *    * *
     *   *   *
     *  *     *
     * *********
     */

    for (int i = 1; i <= 5; i++) {//i表示层数
        //在输出*之前还要输出对应空格
        //对应空格 = 总层数 - 当前层
        for (int k = 1; k <= 5 - i; k++) {
            System.out.print(" ");
        }

        //控制每一层*的个数
        for (int j = 1; j <= 2 * i - 1; j++) {
            //当前层的第一个位置和最后一个位置是*
            if (j ==1 || j == 2 * i -1 || i == 5) {//每一层最后一个位置 = 该层的*数
                System.out.print("*");
            } else {
                System.out.print(" ");
            }

        }
        System.out.println();
    }
    
}