Golang 打印右侧帕斯卡三角形
帕斯卡三角形是一种以二项式系数以三角形形式排列的三角形。在这里,三角形以1开头,并且每行的开头和结尾数字都是1。在本文中,我们将编写Golang程序以打印右侧帕斯卡三角形。
示范
本示范解释了右侧帕斯卡三角形,其中每一行显示了二项式展开式的系数,其底数为(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 − 使用一个外部for循环,使用变量I迭代行,并在循环中将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循环来打印三角形,在第二个示例中,我们使用了两个循环在外层循环中考虑了一个数组作为一行。