Java列印菱形星圖案程式
在本文中,我們將學習如何使用Java列印菱形星圖案。該圖案是透過使用多個for迴圈和列印語句形成的。
輸出
以下是菱形星圖案的演示:
The diamond star pattern : * *** ***** ******* ********* *********** ************* *************** ************* *********** ********* ******* ***** *** *
不同的方法
以下是列印菱形星圖案的不同方法:
使用使用者自定義輸入
以下是列印菱形星圖案的步驟:
- 匯入Scanner類。
- 宣告變數i、j、k和my_input。
- 建立一個Scanner物件來讀取使用者輸入。
- 提示使用者輸入圖案大小的數字。
- 將k設定為my_input - 1。
- 使用巢狀for迴圈列印菱形上半部分的空格和星號。
- 每行之後列印一個新行。
- 調整k並使用巢狀for迴圈列印菱形的下半部分。
- 結束程式。
示例
這裡,輸入是根據提示由使用者輸入的:
import java.util.Scanner; public class DiamondStar{ public static void main(String args[]){ int i, j, k, my_input; System.out.println("Required packages have been imported"); Scanner my_scanner = new Scanner(System.in); System.out.println("A reader object has been defined "); System.out.print("Enter the number : "); my_input = my_scanner.nextInt(); k = my_input - 1; System.out.println("The diamond star pattern : "); for (j = 1; j<= my_input; j++){ for (i = 1; i<= k; i++){ System.out.print(" "); } k--; for (i = 1; i <= 2 * j - 1; i++){ System.out.print("*"); } System.out.println(""); } k = 1; for (j = 1; j<= my_input - 1; j++){ for (i = 1; i<= k; i++){ System.out.print(" "); } k++; for (i = 1; i<= 2 * (my_input - j) - 1; i++){ System.out.print("*"); } System.out.println(""); } } }
輸出
Required packages have been imported A reader object has been defined Enter the number : 8 The diamond star pattern : * *** ***** ******* ********* *********** ************* *************** ************* *********** ********* ******* ***** *** *
使用遞迴
以下是使用遞迴列印菱形星圖案的步驟:
- 首先,我們將匯入Scanner類。
- 提示使用者輸入菱形上半部分的行數 (n)。
- 列印菱形上半部分我們將使用遞迴方法 (printUpperDiamond),對於基本條件,當currentRow超過n時我們將停止。
- 要列印空格,我們將使用一個輔助函式來列印n - currentRow個空格,要列印星號,我們將使用另一個輔助函式來列印2 * currentRow - 1個星號。
- 我們將再次呼叫該方法,使用 currentRow + 1 來處理下一行。
- 要列印菱形下半部分我們將使用遞迴方法 (printLowerDiamond),對於基本條件,當n變為0時我們將停止。
- 要列印空格,我們將使用一個輔助函式來列印currentRow個空格,要列印星號,我們將使用另一個輔助函式來列印2 * n - 1個星號。
- 我們將再次呼叫該方法,使用n - 1和currentRow + 1來處理下一行。
- 輔助函式列印空格,而printStars將遞迴地列印指定數量的星號。
示例
這裡,整數之前已定義,其值將在控制檯上訪問和顯示。
import java.util.Scanner; public class DiamondStar { public static void main(String[] args) { // Scanner to take input from the user Scanner scanner = new Scanner(System.in); System.out.print("Enter the number of rows for the diamond: "); int n = scanner.nextInt(); // Print the upper part of the diamond printUpperDiamond(n, 1); // Print the lower part of the diamond printLowerDiamond(n - 1, 1); } // Method to print the upper part of the diamond static void printUpperDiamond(int n, int currentRow) { if (currentRow > n) { return; } printSpaces(n - currentRow); printStars(2 * currentRow - 1); System.out.println(); printUpperDiamond(n, currentRow + 1); } // Method to print the lower part of the diamond static void printLowerDiamond(int n, int currentRow) { if (n == 0) { return; } printSpaces(currentRow); printStars(2 * n - 1); System.out.println(); printLowerDiamond(n - 1, currentRow + 1); } // Helper method to print spaces static void printSpaces(int count) { if (count == 0) { return; } System.out.print(" "); printSpaces(count - 1); } // Helper method to print stars static void printStars(int count) { if (count == 0) { return; } System.out.print("*"); printStars(count - 1); } }
輸出
The number of rows is defined as 8 The diamond star pattern : * *** ***** ******* ********* *********** ************* *************** ************* *********** ********* ******* ***** *** *
上述程式的時間和空間複雜度為:
時間複雜度:O(n²)
空間複雜度:O(n)
廣告