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