Java程式顯示Floyd三角形


在這篇文章中,我們將瞭解如何使用Java顯示Floyd三角形Floyd三角形是一個流行的直角三角形陣列,由自然陣列成。它的形成是從三角形頂部的數字1開始,然後隨著向下移動到三角形的行,每個後續數字增加1。

第一行只包含一個數字1,並且每一後續行都比前一行多一個數字。三角形有n行,其中n可以是任何正整數。

三角形中的值的總數將是前n個自然數的和,可以使用公式S = n/2 * (2a + (n-1) d)計算,其中S是級數的和,n是級數中的項數,a是級數中的第一項,d是項之間的公差。

然而,在Floyd三角形中,第一項始終為1,公差為1,因此我們可以將此公式簡化為

S= n/2 * (2 + n – 1) = n/2 * (n+1)

因此,具有n行的Floyd三角形中的值的數目為n/2 * (n+1)

如果有5行,即n=5,則三角形中的值的總數為

5/2 * (5+1) = 15

問題陳述

編寫一個Java程式來顯示Floyd三角形。

輸入

rows = 5 (Number of rows n)

輸出

1 
2 3
4 5 6
7 8 9 10
11 12 13 14 15

Floyd三角形的演算法

以下是顯示Floyd三角形的演算法:

  • 輸入行數n。
  • 將變數number初始化為1。
  • 對於從1到n的每一行i,執行以下操作
    • 對於行中的每個元素j(從1到i),執行以下操作
      • i. 列印number的當前值。
      • ii. 將number加1。
    • 列印換行符以移動到下一行。

不同的方法

以下是顯示Floyd三角形的不同方法:

使用for迴圈

For迴圈是一種控制流語句,它重複執行一組指令。它包含3個部分,分別是初始化語句、布林條件更新語句。執行迴圈體後,將執行更新語句,並再次檢查條件,直到布林條件變為false。

示例

下面給出使用巢狀for迴圈顯示Floyd三角形的Java實現:

public class FloydTriangle {
   public static void main(String[] args) {
      // declare the number of rows 
      int rows = 5;
      int num = 1;  
      for (int i = 1; i <= rows; i++) {
         for (int j = 1; j <= i; j++) {
            System.out.print(num + " ");
            num++;
         }
         System.out.println();
      }
   }
}

輸出

1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15

使用while迴圈

While迴圈是另一種形式的控制流語句,它根據預定義的布林條件重複執行,並在條件為false時終止自身。

示例

public class FloydTriangle {
   public static void main(String[] args) {
      int rows = 5;
      int number = 1;
      int i = 1;   
      while (i <= rows) {
         int j = 1;
         while (j <= i) {
            System.out.print(number + " ");
            number++;
            j++;
         }
         System.out.println();
         i++;
      }
   }
}

輸出

1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15

使用do-while迴圈

一個do-while迴圈與while迴圈非常相似,只是它至少執行一次。這是因為條件在每次迭代結束時進行測試。如果條件為true,迴圈將繼續,並在條件為false時終止自身。這裡,行數預定義為10。

示例

public class FloydTriangle {
   public static void main(String[] args) {
      int rows = 10;
      int number = 1;
      int i = 1;   
      do {
         int j = 1;
         do {
            System.out.print(number + " ");
            number++;
            j++;
         } while (j <= i);
         System.out.println();
         i++;
      } while (i <= rows);
   }
}

輸出

1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15 
16 17 18 19 20 21 
22 23 24 25 26 27 28 
29 30 31 32 33 34 35 36 
37 38 39 40 41 42 43 44 45 
46 47 48 49 50 51 52 53 54 55

結論

總之,Floyd三角形是由自然陣列成的直角三角形,每一行包含的元素數量遞增。您可以使用不同型別的迴圈(如forwhiledo-while迴圈)在Java中生成Floyd三角形。每個迴圈版本都遵循一個簡單的邏輯:從1開始,在遍歷每一行時列印並遞增數字。此過程持續進行,直到三角形以所需的行數形成,使實現既簡單又高效。

更新於:2024年10月18日

588 次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.