本文概述
在数学中, 帕斯卡的三角形是数字的三角形排列, 它给出任何二项式表达式(例如(x + y)n)的展开式的系数。它以17世纪法国数学家Blaise Pascal的名字命名。对于那些不熟悉二项式表达式的人来说, 一个更简单的解释是, 帕斯卡三角形是一个永无休止的数字等边三角形, 遵循将上面两个数字相加得到下面数字的规则。
在本文中, 我们将向你展示如何使用Swift编程语言在控制台中生成这个著名的三角形。
直接在控制台中打印
图形上, 如上所述, 建立帕斯卡三角形的方法非常简单, 要得到下面的数字, 你需要在上面加上两个数字, 依此类推:
以下代码将生成帕斯卡的三角形:
// Function that generates the pascals triangle with a specific number of rows
func generatePascalTriangle(numRows: Int){
var results = [[Int]]()
if (numRows == 0) {
return
}
for i in 0..<numRows {
var currentResults = [Int]()
// Print spaces
for _ in 0..<(numRows - i - 1) {
print(" ", terminator:"")
}
// Print values
for j in 0...i {
if (i > 1 && j > 0 && j < i) {
let value = results[i-1][j] + results[i-1][j-1]
currentResults.append(value)
print("\(value) ", terminator: "")
} else {
currentResults.append(1)
print("\(1) ", terminator: "")
}
}
results.append(currentResults)
print("\n")
}
}
// Prompt the user for the number of rows through the console e.g "10"
print("Insert the number of rows for the triangle:")
let numberOfRows:Int? = Int(readLine()!)
// Print the pascals triangle in the console with the given number of rows
generatePascalTriangle(numRows: numberOfRows!)
// Or force the value directly:
// generatePascalTriangle(numRows: 10)
前面代码的执行将在控制台中生成以下输出:
检索数组中的三角形数据
如果不是在控制台中仅打印三角形, 而是可以检索逻辑生成的数据并在以后以其他方式呈现它:
// Function that generates the pascals triangle with a specific number of rows
func generate(numRows: Int) -> [[Int]] {
var results = [[Int]]()
if (numRows == 0) {
return results
}
for i in 0..<numRows {
var currentResults = [Int]()
for j in 0...i {
if (i > 1 && j > 0 && j < i) {
let value = results[i-1][j] + results[i-1][j-1]
currentResults.append(value)
} else {
currentResults.append(1)
}
}
results.append(currentResults)
}
return results
}
let triangleContent = generate(numRows: 10)
print(triangleContent)
先前的代码将生成以下输出:
请记住, 你可以遍历函数的结果, 例如:
let triangleContent = generate(numRows: 10)
for i in 0..<triangleContent.count {
let row = triangleContent[i]
for i in 0..<row.count {
let value = row[i]
print("\(value) ", terminator:"")
}
print("\n")
}
上一个代码片段将生成以下输出:
编码愉快!