Swift程序打印Floyd三角形


Floyd三角形是一个直角三角形,以Rober Floyd命名。它由从左上角开始的自然数构成,后续数字按指定行填充。

示例演示

输入

4

输出

1
2 3
4 5 6
7 8 9 10

这里,Floyd三角形的尺寸为4。因此它将打印直到4行的Floyd三角形。

在Swift中,我们可以使用以下方法打印Floyd三角形

  • 使用for-in循环

  • 使用while循环

  • 使用递归函数

算法

步骤1 - 创建一个用户自定义函数,该函数将总行数作为参数。

步骤2 - 此函数包含一个“myNum”变量,该变量包含三角形的起始数字。

步骤3 - 然后它运行一个嵌套循环以显示Floyd三角形的所有行和列。

步骤4 - 定义一个变量来存储Floyd三角形的尺寸。

步骤5 - 调用函数并将大小作为参数传递。

步骤6 - 显示输出。

方法1:使用for-in循环的Floyd三角形

在这种方法中,我们将借助for-in循环显示Floyd三角形。在这里,我们运行两个for-in循环来显示Floyd三角形的行和列。

示例

在下面的Swift程序中,我们将打印Floyd三角形。为此,我们将创建一个函数,该函数只接受一个参数,即三角形的大小。此函数具有myNum变量,该变量跟踪要打印在三角形中的数字,然后运行嵌套的for-in循环以显示Floyd三角形的行。

import Foundation
import Glibc

// Function to print Floyd's Triangle
func displayFloydsTriangle(totalRows: Int) {

    var myNum = 1
    for x in 1...totalRows {
        for _ in 1...x {
            print(myNum, terminator: " ")
            myNum += 1
        }
        
        // Move to the next line
        print() 
    }
}

let sizeOfRows = 6

// Calling function
displayFloydsTriangle(totalRows: sizeOfRows)

输出

1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15 
16 17 18 19 20 21 

方法2:使用while循环的Floyd三角形

在这种方法中,我们将借助while循环显示Floyd三角形。在这里,我们运行两个while循环来显示Floyd三角形的行和列。

示例

在下面的Swift程序中,我们将打印Floyd三角形。为此,我们将创建一个函数,该函数只接受一个参数,即三角形的大小。此函数具有myNum变量,该变量跟踪要打印在三角形中的数字,以及cRow变量来跟踪当前行。然后它使用嵌套的while循环来显示构成Floyd三角形的数字的行和列。

import Foundation
import Glibc

// Function to print Floyd's Triangle
func displayFloydsTriangle(totalRows: Int) {

    var myNum = 1
    var cRow = 1
    
    while cRow <= totalRows {
        var col = 1
        
        while col <= cRow {
            print(myNum, terminator: " ")
            myNum += 1
            col += 1
        }
        
        print() 
        cRow += 1
    }
}

let sizeOfRows = 7

// Calling function
displayFloydsTriangle(totalRows: sizeOfRows)

输出

1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15 
16 17 18 19 20 21 
22 23 24 25 26 27 28

方法3:使用递归的Floyd三角形

在这种方法中,我们将借助递归显示Floyd三角形。递归是一个函数调用自身以完成任务的过程。在这里,我们将递归调用函数以显示Flyod三角形。

示例

在下面的Swift程序中,我们将使用递归打印Floyd三角形。为此,我们将创建一个名为displayFloydsTriangle()的递归函数。它接受三个参数:总行数、起始数字和当前行。它借助for-in循环打印每一行,然后它使用更新的参数调用自身以进行下一行。最后,我们使用指定行数到达fTriangle()函数以开始打印Floyd三角形。

import Foundation
import Glibc

// Function to print Floyds triangle
func displayFloydsTriangle(totalrows: Int, num: Int, cRow: Int) {

    var x = num
    if cRow > totalrows {
        return
    }
    
    for _ in 1...cRow {
        print(x, terminator: " ")
        x += 1
    }
    print()
    
    // Calling function recursively
    displayFloydsTriangle(totalrows: totalrows, num: x, cRow: cRow + 1)
}

func fTriangle(rows: Int) {
    displayFloydsTriangle(totalrows:rows, num: 1, cRow: 1)
}

let triangleSize = 7
fTriangle(rows: triangleSize)

输出

1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15 
16 17 18 19 20 21 
22 23 24 25 26 27 28 

现实生活中的应用

Floyd三角形的现实生活应用包括:

  • 它用于教育目的,以教授嵌套循环、模式打印、递归等。

  • 它也用于分析数学和计算机科学中的模式。

  • 它也用于数学和谜题中。

  • 它也用于艺术和设计中。

结论

这就是我们打印Floyd三角形的方法。这是了解for-in循环、while循环以及递归等嵌套循环工作原理的好方法。我们还可以使用循环和递归创建反向Floyd三角形。同样,使用上述方法,我们还可以通过对代码进行一些小的更改来创建任何类型的Flyod三角形,例如星形三角形等。

更新于:2023年9月8日

浏览量:193

启动您的职业生涯

完成课程获得认证

开始学习
广告