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


帕斯卡三角形是一種以三角形形式排列二項式係數的三角形。這裡,三角形以1開頭,每一行開頭和結尾的數字都是1。在本文中,我們將編寫Go語言程式來列印右側帕斯卡三角形。

演示

此演示解釋了右側帕斯卡三角形,其中每一行顯示(a+b)^n的冪的二項式展開式的係數,其中a和b =1。第一行只有一個1,第二行有1和1,第三行有1、2和1,依此類推。

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 
1 7 21 35 35 21 7 1

演算法

  • 步驟1 − 在程式中匯入fmt和main包,其中fmt有助於輸入和輸出的格式化,而main確保程式應該是一個可執行程式

  • 步驟2 − 建立一個main函式,並在該函式中建立一個簡寫變數row併為其賦值8,這意味著直角三角形將由8行組成

  • 步驟3 − 使用一個使用I變數迭代到行的外部for迴圈,並在迴圈中將val賦值為1

  • 步驟4 − 使用一個內部迴圈,其中j變數小於或等於i變數。在迴圈中列印val並在每次內部迭代中更新它

  • 步驟5 − 在內部迭代之後,使用Println函式,該函式用於向三角形新增新行

  • 步驟6 − 最後,直角三角形將列印到控制檯

示例1

在此示例中,使用兩個巢狀的for迴圈來列印右側帕斯卡三角形。在外部for迴圈中,val將設定為一個稍後在內部迴圈中更新的值。這樣,輸出將列印到控制檯。

package main

import "fmt"

func main() {
   rows := 8 
   
   for i := 0; i< rows; i++ {
      val := 1
      for j := 0; j <= i; j++ {
         fmt.Printf("%d ", val)
         val = val * (i - j) / (j + 1)
      }
      fmt.Println()
   }
}

輸出

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 
1 7 21 35 35 21 7 1

示例2

在此示例中,將在外部for迴圈內使用兩個迴圈。這裡,特別是陣列將用於儲存使用第二個for迴圈計算的行計算出的元素。

package main

import "fmt"

//Main function to execute the program
func main() {
   rows := 8        
   var array [8]int

   for i := 0; i< rows; i++ {
      array[0] = 1 

      for j := i; j > 0; j-- {
         array[j] += array[j-1] 
      }

      for l := i; l >= 0; l-- {
         fmt.Print(array[l], " ") 
      }

      fmt.Println() 
   }
}

輸出

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 
1 7 21 35 35 21 7 1

結論

我們已經成功編譯並執行了列印右側帕斯卡三角形的程式。在第一個示例中,我們使用兩個巢狀的for迴圈來列印三角形,在第二個示例中,我們在外部迴圈內使用了兩個迴圈,並將陣列視為一行。

更新於: 2023年7月20日

66 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.