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

Java 循環實戰精講:九九乘法表、三角形圖案與水仙花數

     編輯:Java 程式設計入門

前言:循環控制是程式設計基石

巢狀循環、條件判斷、數學運算的綜合運用,是從新手邁向進階的必經之路。本文精選三大經典案例,通過代碼實現 → 邏輯拆解 → 變體擴展的模式,助你徹底掌握循環精髓。

案例一:九九乘法表——雙層循環的經典應用

核心邏輯

  • 外層循環控制行數(被乘數 b:1~9)
  • 內層循環控制每行列數(乘數 a:1~b)
  • 利用 \t 制表符對齊輸出

標準實現

public class MultiplicationTable {
    public static void main(String[] args) {
        for (int b = 1; b < 10; b++) {        // 行:被乘數
            for (int a = 1; a <= b; a++) {    // 列:乘數
                System.out.print(a + "*" + b + "=" + (a * b) + "\t");
            }
            System.out.println(); // 換行
        }
    }
}

輸出效果

1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
...
1*9=9	2*9=18	...	9*9=81

進階變體:右對齊/倒序/完整矩陣

// 變體1:完整 9x9 矩陣(去除 a<=b 條件)
for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= 9; j++) {
        System.out.printf("%d*%d=%-3d", j, i, i*j);
    }
    System.out.println();
}

// 變體2:倒序輸出
for (int i = 9; i >= 1; i--) {
    for (int j = 1; j <= i; j++) { ... }
}

案例二:三角形圖案大全——掌握空格與星號的幾何關係

關鍵洞察:每行由 前導空格 + 星號 組成,行號 i 決定兩者數量。

四大基礎圖案統一框架

public class TrianglePatterns {
    public static void main(String[] args) {
        printLeftAligned(5);      // 左對齊直角三角形
        printRightAligned(5);     // 右對齊直角三角形
        printIsosceles(5);        // 等腰三角形
        printDiamond(5);          // 菱形(上下兩個等腰三角形)
    }

    // 1. 左對齊:*
    //            **
    //            ***
    public static void printLeftAligned(int n) {
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) System.out.print("*");
            System.out.println();
        }
    }

    // 2. 右對齊:    *
    //               **
    //              ***
    public static void printRightAligned(int n) {
        for (int i = 1; i <= n; i++) {
            for (int k = 1; k <= n - i; k++) System.out.print(" "); // 空格遞減
            for (int j = 1; j <= i; j++) System.out.print("*");
            System.out.println();
        }
    }

    // 3. 等腰三角形:  *
    //                  ***
    //                 *****
    public static void printIsosceles(int n) {
        for (int i = 1; i <= n; i++) {
            for (int k = 1; k <= n - i; k++) System.out.print(" ");       // 空格:n-i
            for (int j = 1; j <= 2 * i - 1; j++) System.out.print("*");   // 星號:2i-1
            System.out.println();
        }
    }

    // 4. 菱形 = 正向等腰 + 反向等腰
    public static void printDiamond(int n) {
        printIsosceles(n); // 上半部分
        for (int i = n - 1; i >= 1; i--) { // 下半部分(倒序,不含中線)
            for (int k = 1; k <= n - i; k++) System.out.print(" ");
            for (int j = 1; j <= 2 * i - 1; j++) System.out.print("*");
            System.out.println();
        }
    }
}

通用推導公式(行號 i,總行數 n)

圖案類型前導空格數星號數備註
左對齊直角0i最簡單
右對齊直角n - ii空格遞減
等腰三角形n - i2*i - 1星號奇數遞增
菱形上半n - i2*i - 1i: 1~n
菱形下半i - 12*(n-i) + 1i: n-1~1

案例三:水仙花數——數學定義與數位拆解技巧

定義

三位數 abc,滿足 a³ + b³ + c³ = abc。例如 153 = 1³ + 5³ + 3³。

核心技巧:數位拆解

int num = 153;
int hundred = num / 100;        // 百位:1
int ten = (num / 10) % 10;      // 十位:5
int unit = num % 10;            // 個位:3

完整實現

public class NarcissisticNumber {
    public static void main(String[] args) {
        System.out.println("所有三位數水仙花數:");
        for (int i = 100; i < 1000; i++) {
            int a = i / 100;
            int b = (i / 10) % 10;
            int c = i % 10;
            if (i == a*a*a + b*b*b + c*c*c) {
                System.out.println(i);
            }
        }
    }
}

輸出結果

153
370
371
407

擴展:N 位數阿姆斯壯數(通用解法)

public static boolean isArmstrong(int num) {
    String s = String.valueOf(num);
    int n = s.length();
    int sum = 0;
    for (char ch : s.toCharArray()) {
        int digit = ch - '0';
        sum += Math.pow(digit, n);
    }
    return sum == num;
}

總結與舉一反三

  1. 九九乘法表:掌握 雙層循環 + 三角形遍歷範圍 模式,可延伸至矩陣操作、動態規劃狀態轉移。
  2. 三角形圖案:核心是 空格數 + 星號數 = 總寬度 的幾何關係,畫圖推導比死記公式更靠譜。
  3. 水仙花數:數位拆解(/100, /10%10, %10)是處理數字型問題的通用技巧,適用於回文數、完美數等判斷。

建議動手修改參數、組合圖案(如空心三角形、帕斯卡三角形),在實戰中內化循環邏輯。

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