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

开启你的职业生涯

完成课程获得认证

开始学习
广告