Golang 打印左侧帕斯卡三角形
在这篇Golang文章中,我们将学习如何使用递归和迭代方法打印左侧帕斯卡三角形。帕斯卡三角形是一个由二项式系数构成的三角形数组。左侧帕斯卡三角形是帕斯卡三角形的一种变体,通过沿着垂直轴反射帕斯卡三角形而获得。
语法
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语言程序,使用递归和迭代方法打印了左侧的帕斯卡三角形,同时提供了两个示例。在第一个示例中,我们使用了迭代方法,在第二个示例中,我们使用了递归方法。