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循环来打印三角形,在第二个示例中,我们在外部循环内使用了两个循环,并将数组视为一行。

更新于: 2023年7月20日

66 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告