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

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告