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

Java 圖形輸出:三角形與菱形打印模式解析

     編輯:Java 相關知識

核心模式

行號 i (1-based),每行星號數與空格數由 i 決定。關鍵公式:

  • 正三角形:第 i 行 → 2*i-1 個星號
  • 倒三角形:第 i 行 → 2*i-3 個星號 (從倒數第 2 行開始)
  • 菱形上半部:4-i 空格 + 2*i-1 星號
  • 菱形下半部:5-i 空格 + 2*i-3 星號

1. 等腰三角形 (高度 4)

public class Triangle {
    public static void main(String[] args) {
        int h = 4;
        // 正三角
        for (int i = 1; i <= h; i++) {
            printChars(' ', h - i);      // 左側空格 (可選,居中)
            printChars('*', 2 * i - 1);  // 星號
            System.out.println();
        }
        // 倒三角 (不含頂點重複)
        for (int i = h - 1; i >= 1; i--) {
            printChars(' ', h - i);
            printChars('*', 2 * i - 1);
            System.out.println();
        }
    }
    static void printChars(char c, int n) {
        for (int i = 0; i < n; i++) System.out.print(c);
    }
}

輸出:

   *
  ***
 *****
*******
 *****
  ***
   *

2. 菱形 (高度 4 上半部 + 3 下半部 = 7 行)

public class Diamond {
    public static void main(String[] args) {
        int h = 4;
        // 上半部 (含中線)
        for (int i = 1; i <= h; i++) {
            printChars(' ', h - i);       // 左側空格
            printChars('*', 2 * i - 1);   // 星號
            System.out.println();
        }
        // 下半部 (不含中線)
        for (int i = h - 1; i >= 1; i--) {
            printChars(' ', h - i);
            printChars('*', 2 * i - 1);
            System.out.println();
        }
    }
    static void printChars(char c, int n) {
        for (int i = 0; i < n; i++) System.out.print(c);
    }
}

輸出:

   *
  ***
 *****
*******
 *****
  ***
   *

通用化:任意高度菱形

public class DiamondGeneric {
    public static void printDiamond(int h) {
        // 上半部
        for (int i = 1; i <= h; i++)
            System.out.println(" ".repeat(h - i) + "*".repeat(2 * i - 1));
        // 下半部
        for (int i = h - 1; i >= 1; i--)
            System.out.println(" ".repeat(h - i) + "*".repeat(2 * i - 1));
    }
    
    public static void main(String[] args) {
        printDiamond(5);
        // Java 11+ String.repeat() 簡化打印
    }
}

擴展模式

總結

圖形打印本質是找出行號與字符數的數學關係。菱形 = 正三角 + 倒三角 (去重中線)。掌握 2*i-1、h-i 兩個核心公式,配合 String.repeat() (Java 11+) 或輔助函數,可輕鬆構建各種幾何圖案。重點訓練「從幾何形狀抽象出循環邊界」的建模能力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
模式第 i 行星號數第 i 行空格數
左對齊直角三角i0
右對齊直角三角ih-i
空心三角形首尾星號,中間空格h-i
帕斯卡三角形組合數 C(i-1, j-1)視寬度
數字金字塔遞增/遞減數字h-i