C語言中文網 目錄

Java輸出楊輝三角形

本節利用過 Java 語言中的流程控制語句,如條件語句、循環語句和跳轉語句等知識輸出一個指定行數的楊輝三角形。

楊輝三角形由數字進行排列,可以把它看作是一個數字表,其基本特性是兩側數值均為 1,其他位置的數值是其左上方數值與右上角數值之和。打印楊輝三角形時需要使用到 for 循環語句。

打印楊輝三角形的實現思路是:每一行前面都是空格,而每行空格的個數需要根據總行數來確定,這個可以通過找規律歸納出來。關鍵是數值的實現,每一行的數值(除了第一列和最后一列)都是上一行兩個數值之和,因此可以通過上一行來獲取。

實現步驟如下:

(1) 創建名稱為 Test28 的類,在該類中聲明 num() 方法,在 num() 方法中傳入兩個參數,即 x 和 y。其中,x 表示行,y 表示列。num() 方法用于計算第 x 行第 y 列的數值。代碼如下:
public static int num(int x,int y)
{
    if(y==1||y==x)
    {
         return 1;
    }
    int c=num(x-1,y-1)+num(x-1,y);
    return c;
}

(2) 創建名稱為 calculate 的方法,在該方法中傳入一個 int 類型的參數,該參數表示打印楊輝三角形的行數。代碼如下:
public static void calculate(int row)
{
    for(int i=1;i<=row;i++)
    {
        for(int j=1;j<=row-i;j++)
        {
            System.out.print(" ");
        }
        for(int j=1;j<=i;j++)
        {   //打印空格后面的字符, 從第1 列開始往后打印
            System.out.print(num(i,j) +" ");
        }
        System.out.println();
    }
}

(3) 在 main() 方法中添加代碼,首先接收用戶在控制臺輸入的打印行數,然后將行數作為參數傳入到調用的 calculate() 方法中。代碼如下:
public static void main(String[] args)
{
    Scanner scan=new Scanner(System.in);
    System.out.print("打印楊輝三角形的行數:");
    int row=scan.nextInt();
    calculate(row);
}

(4) 運行代碼進行測試,其運行結果如下所示:
打印楊輝三角形的行數:7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
 1 5 10 10 5 1
1 6 15 20 15 6 1 

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo