Golang程序打印左半Pascal三角形

Golang程序打印左半Pascal三角形

Pascal三角形,也称杨辉三角,是一个非常有趣的数学形式。它是按照以下规则构造的:

第一行仅为数字1;

其它行的端点与中间数字均为1;

每个数等于它的上一行左侧数字与右侧数字之和。

左半Pascal三角形,指的是只展示三角形左侧的部分,形如:

1
1 1
1 2 1
1 3 3
1 4
1

接下来,我们将使用Golang编写程序,来打印左半Pascal三角形。

实现步骤

为了让程序更具可读性和可维护性,我们将实现以下步骤:

  1. 首先,我们需要定义一个包含指定行数的二维数组;
  2. 然后,我们将使用两个单独的循环来填充三角形的数字;
  3. 最后,我们将使用另一个循环来按照格式输出左半三角形。

那么代码就是这样的:

package main

import "fmt"

func main() {
  rows := 6
  triangle := make([][]int, rows)
  for i := range triangle {
    triangle[i] = make([]int, i+1)
    for j := range triangle[i] {
      if j == 0 || j == i {
        triangle[i][j] = 1
      } else if j != 0 {
        triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
      }
    }
  }
  for i := 0; i < rows; i++ {
    for j := 0; j <= i; j++ {
      fmt.Print(triangle[i][j], " ")
    }
    fmt.Println()
  }
}

让我们逐个解释:

首先,我们定义变量rows,它用于指定三角形中行的数量。

然后,我们定义一个二维数组triangle,该数组包含每一行中的数字。我们使用make函数将每一行设置为一个长度等于当前行数的空数组。

rows := 6
triangle := make([][]int, rows)
for i := range triangle {
  triangle[i] = make([]int, i+1)
}

接下来,我们使用两个嵌套的循环来填充三角形数组。

for i := range triangle {
  for j := range triangle[i] {
    if j == 0 || j == i {
      triangle[i][j] = 1
    } else if j != 0 {
      triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
    }
  }
}

在这里,我们首先检查当前单元格是否是行的最左侧或最右侧。如果是,则将其设置为1。否则,我们将其设置为其上一行中相邻数字的和。

最后,我们使用一个循环来输出左半三角形,使用“0”填充三角形右侧的空格。

for i := 0; i < rows; i++ {
  for j := 0; j <= i; j++ {
    fmt.Print(triangle[i][j], " ")
  }
  for k := 0; k < rows-i-1; k++ {
    fmt.Print("0 ")
  }
  fmt.Println()
}

这个循环首先在每行中遍历数字,并在每个数字之间添加一个空格。然后,如果行中还有剩余的空格,我们使用“0”填充它们。

完整代码

完整的Golang程序如下所示:

package main

import "fmt"

func main() {
    rows := 6
    triangle := make([][]int, rows)
    for i := range triangle {
        triangle[i] = make([]int, i+1)
    }
    for i:= range triangle {
        for j := range triangle[i] {
            if j == 0 || j == i {
                triangle[i][j] = 1
            } else if j != 0 {
                triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
            }
        }
    }
    for i := 0; i < rows; i++ {
        for j := 0; j <= i; j++ {
            fmt.Print(triangle[i][j], " ")
        }
        for k := 0; k < rows-i-1; k++ {
            fmt.Print("0 ")
        }
        fmt.Println()
    }
}

结论

使用Golang编写程序打印左半Pascal三角形,可以帮助我们更好地了解该数学形式,并为Golang程序员提供了一种有趣的方式来提高他们的编程技能。虽然本文只提供了一个简单的示例,但您可以根据自己的需要进行调整和扩展,以使该程序更加丰富和有用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程