首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 圖形打印大全:正金字塔、倒金字塔、菱形(水影)完整代碼與邏輯解析

     編輯:Java 綜合教學

核心規律:空格與星號的數學關係

以 5 行正金字塔為例,第 i 行(1-based):

  • 空格數 = 總行數 - i
  • 星號數 = 2*i - 1
行數空格星號
141
233
325
417
509

三大圖形完整實現

1. 正金字塔

public static void uprightPyramid(int rows) {
    for (int i = 1; i <= rows; i++) {
        for (int s = 1; s <= rows - i; s++) System.out.print(" ");
        for (int k = 1; k <= 2*i - 1; k++) System.out.print("★");
        System.out.println();
    }
}

2. 倒金字塔

public static void fallPyramid(int rows) {
    for (int i = rows; i >= 1; i--) {
        for (int s = 0; s < rows - i; s++) System.out.print(" ");
        for (int k = 0; k < 2*i - 1; k++) System.out.print("★");
        System.out.println();
    }
}

3. 菱形(水影金字塔)= 正 + 倒

public static void diamond(int rows) {
    uprightPyramid(rows);
    fallPyramid(rows - 1); // 避免中間行重複
}

互動式主程式

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    while (true) {
        System.out.println("選擇:0-正金字塔 1-倒金字塔 2-菱形 3-退出");
        String input = sc.nextLine();
        if (!input.matches("\\d+")) { System.out.println("請輸入數字!"); continue; }
        int choice = Integer.parseInt(input);
        if (choice == 3) break;
        System.out.print("請輸入行數:");
        int rows = Integer.parseInt(sc.nextLine());
        switch (choice) {
            case 0: uprightPyramid(rows); break;
            case 1: fallPyramid(rows); break;
            case 2: diamond(rows); break;
            default: System.out.println("選項錯誤!");
        }
    }
}

圖形化輔助說明

金字塔結構示意 空格佔位示意

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved