Swift 程序打印帕斯卡三角
swiftserver side programmingprogramming更新于 2025/9/19 2:52:17
本教程将讨论如何编写 Swift 程序打印帕斯卡三角。
帕斯卡三角是一个二进制系数的三角数组。它是一个永不结束的等边三角形,始终遵循将上一行的两个数字相加得出下一行数字的规则。例如,第一行的初始数字为 1,因此第二行的数字是第一行两个数字 0+1 和 1+0 之和,因此我们得到 [1, 1]。现在第三行的数字是第二行两个数字 0+1、1+1、1+0 之和,所以我们得到第三行 [1, 2, 1],依此类推……
下面是同样的演示 −

输入
假设我们给定的输入是 −
Total number of rows: 10
输出
期望的输出是 −
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 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
算法
以下是算法 -
步骤 1 - 创建函数
步骤 2 - 声明一个名为 res 的变量来存储结果。
步骤 3 - 检查行数是否等于 0。如果是,则返回。
步骤 4 - 运行 for 循环来处理总行数。此循环从 0 开始到 row-1(或 0..<row)。
步骤 5 - 声明另一个名为 Cres 的变量来存储当前结果。
步骤 6 - 运行嵌套 for 循环来打印空格。此循环从 0..<(row-x-1) 开始。
步骤 7 - 运行另一个嵌套 for 循环来打印帕斯卡三角形的值。这里我们将上面一行的两个数字相加,得到下面一行的数字。
步骤 8 − 调用函数并将总行数作为参数传递。
步骤 9 − 打印输出。
示例 1
以下程序演示如何打印帕斯卡三角形
import Swift
import Foundation
func createPascalTriangle(row: Int)
{
var res = [[Int]]()
if (row == 0)
{
return
}
for x in 0..<row
{
var Cres = [Int]()
for _ in 0..<(row-x-1)
{
print(" ", terminator:"")
}
for y in 0...x
{
if(x>1 && y>0 && y<x)
{
let val = res[x-1][y] + res[x-1][y-1]
Cres.append(val)
print("\(val) ", terminator: "")
} else {
Cres.append(1)
print("\(1) ", terminator: "")
}
}
res.append(Cres)
print("")
}
}
var num = 5
createPascalTriangle(row:num)
输出
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
在上面的代码中,我们显示了三角形图案中帕斯卡三角形的值。为了找到帕斯卡三角形的值,我们将上面一行的两个数字相加,得到下面一行的数字,代码如下:
for y in 0...x{
if(x>1 && y>0 && y<x){
let val = res[x-1][y] + res[x-1][y-1]
Cres.append(val)
print("\(val) ", terminator: "")
} else {
Cres.append(1)
print("\(1) ", terminator: "")
}
示例 2
以下程序显示如何在一行中打印帕斯卡三角形
import Swift
import Foundation
func createPascalTriangle(row: Int)->[[Int]]{
var res = [[Int]]()
if (row == 0){
return res
}
for x in 0..<row{
var Cres = [Int]()
for y in 0...x{
if(x>1 && y>0 && y<x){
let val = res[x-1][y] + res[x-1][y-1]
Cres.append(val)
} else {
Cres.append(1)
}
}
res.append(Cres)
}
return res
}
var num = 5
print(createPascalTriangle(row:num))
输出
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
在上面的代码中,我们显示了数组中帕斯卡三角形的值。