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迴圈來列印三角形,在第二個示例中,我們在外部迴圈內使用了兩個迴圈,並將陣列視為一行。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP