首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 打印數字金字塔圖形算法解析

     編輯:程式設計疑難解答

題目描述

輸出如下數字圖形:


1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
5 4 3 2 1 2 3 4 5
6 5 4 3 2 1 2 3 4 5 6

算法思路

觀察圖形可發現:每行數字以當前行號為中心,左右對稱遞減再遞增。第 i 行(從 1 開始)包含從 i 遞減到 1,再遞增到 i 的數字。前面需補齊空格使圖形居中。

代碼實現

int n = 6; // 總行數
for (int i = 1; i <= n; i++) {
    // 打印前導空格
    for (int j = 0; j < n - i; j++) {
        System.out.print(" ");
    }
    // 打印數字:從 -i 到 i,跳過 0 和 1,取絕對值
    for (int k = -i; k <= i; k++) {
        if (k == 0 || k == 1) continue;
        System.out.print(" " + Math.abs(k));
    }
    System.out.println();
}

關鍵點解析

  • 外層循環控制行數。
  • 第一個內層循環打印空格,保證圖形居中對齊。
  • 第二個內層循環利用負數到正數的範圍,配合 Math.abs() 和條件跳過,巧妙生成對稱數字序列。

運行結果與預期圖形完全一致,邏輯清晰簡潔。

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