Go語言程式列印左側帕斯卡三角形


在這篇Go語言文章中,我們將學習如何使用遞迴和迭代方法列印左側帕斯卡三角形。帕斯卡三角形是二項式係數的三角形排列。左側帕斯卡三角形是透過沿垂直軸反射帕斯卡三角形獲得的帕斯卡三角形的變體。

語法

func leftPascal(n, k int) int{…}

leftPascal()函式用於列印左側帕斯卡三角形。它接收兩個引數作為輸入。

func leftPascal(n int){…}

leftPascal()函式用於列印左側帕斯卡三角形。它接收一個引數,即行數作為輸入。

演算法

  • 步驟1 − 首先,我們需要匯入fmt包。

  • 步驟2 − 開始main()函式。在main()函式中,定義建立左側帕斯卡三角形的行數。

  • 步驟3 − 建立巢狀迴圈來迭代三角形的每一行和每一列。外迴圈遍歷行,內迴圈遍歷列。

  • 步驟4 − 現在,呼叫leftPascal()函式計算每個位置的值。

  • 步驟5 − 此外,使用fmt.Println()函式將生成的左側帕斯卡三角形列印到螢幕上。

  • 步驟6 − 現在,定義一個leftPascal()函式,用於列印左側帕斯卡三角形。

  • 步驟7 − 它為三角形中的每個位置提供一個二項式係數值,並表示從n個專案集合中選擇k個專案的方法數。

  • 步驟8 − 它檢查k是否等於0或n,在這種情況下,二項式係數為1。如果k不等於0或n,則該函式使用公式計算二項式係數:C(n, k) = C(n-1, k-1) + C(n-1, k)

  • 步驟9 − 然後,透過對三角形中每個位置呼叫此函式,它列印帕斯卡三角形的左半部分。

示例1

在這個例子中,我們將使用迭代方法定義一個leftPascal()函式,用於列印左側帕斯卡三角形。

package main

import "fmt"

func main() {
   rows := 5

   fmt.Printf("The resultant left Pascal's triangle is: \n")
   for i := 0; i < rows; i++ {
      for j := 0; j <= i; j++ {
         fmt.Printf("%d ", leftPascal(i, j))
      }
      fmt.Println()
   }
}

func leftPascal(n, k int) int {
   if k == 0 || k == n {
      return 1
   } else {
      return leftPascal(n-1, k-1) + leftPascal(n-1, k)
   }
}

輸出

The resultant left Pascal's triangle is: 
1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 

示例2

在這個例子中,我們將使用遞迴方法定義一個leftPascal()函式,用於列印左側帕斯卡三角形。

package main

import "fmt"

func pascalValue(n, k int) int {
   if k == 0 || k == n {
      return 1
   }
   return pascalValue(n-1, k-1) + pascalValue(n-1, k)
}

func leftPascal(n int) {
   for i := 0; i < n; i++ {
      for j := 0; j <= i; j++ {
         fmt.Print(pascalValue(i, j), "")
      }
      fmt.Println()
   }
}

func main() {
   fmt.Printf("The resultant left Pascal's triangle is: \n")
   leftPascal(5)
}

輸出

The resultant left Pascal's triangle is: 
1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 

結論

我們已經成功地編譯並執行了一個Go語言程式,使用遞迴和迭代方法列印左側帕斯卡三角形,並附帶兩個示例。在第一個示例中,我們使用了迭代方法;在第二個示例中,我們使用了遞迴方法。

更新於:2023年5月10日

瀏覽量:186

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.