Swift 程序打印帕斯卡三角形
本教程将讨论如何编写 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
以下程序演示了如何在 1 行中打印帕斯卡三角形
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]]
在上面的代码中,我们以数组的形式显示帕斯卡三角形的数值。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP