Swift 程式列印螺旋圖案


本教程將討論如何編寫 Swift 程式來列印螺旋圖案。

數字圖案是一系列數字,用於開發不同的圖案或形狀,例如金字塔、矩形、十字形等。這些數字圖案通常用於理解或練習程式流程控制,它們也對邏輯思維很有幫助。

要建立數字螺旋圖案,我們可以使用以下任何一種方法 -

  • 使用巢狀 for 迴圈
  • 使用 stride 函式

以下是演示 -

輸入

假設我們的給定輸入是 -

Num = 6

輸出

所需的輸出將是 -

6 6 6 6 6 6 6 6 6 6 6  
6 5 5 5 5 5 5 5 5 5 6  
6 5 4 4 4 4 4 4 4 5 6  
6 5 4 3 3 3 3 3 4 5 6  
6 5 4 3 2 2 2 3 4 5 6  
6 5 4 3 2 1 2 3 4 5 6  
6 5 4 3 2 2 2 3 4 5 6  
6 5 4 3 3 3 3 3 4 5 6  
6 5 4 4 4 4 4 4 4 5 6  
6 5 5 5 5 5 5 5 5 5 6  
6 6 6 6 6 6 6 6 6 6 6 

方法 1 - 使用巢狀 for 迴圈

我們可以使用巢狀 for 迴圈建立左三角形星形圖案或任何其他圖案。

示例

以下程式顯示瞭如何使用巢狀 for 迴圈列印數字螺旋圖案。

import Swift
import Foundation

var number = 4
var patternSize = 2 * number - 1

// Handle each row
for x in 1...patternSize{

   // Printing the number in spiral pattern
   for y in 1...patternSize{
      print(max(abs(x-number), abs(y-number)) + 1, terminator: " ")
   }
   // Add new line
   print(" ")
}

輸出

4 4 4 4 4 4 4  
4 3 3 3 3 3 4  
4 3 2 2 2 3 4  
4 3 2 1 2 3 4  
4 3 2 2 2 3 4  
4 3 3 3 3 3 4  
4 4 4 4 4 4 4 

在這裡,在上面的程式碼中,我們使用巢狀 for 迴圈來列印數字螺旋圖案。最外面的 for 迴圈(從 1 到 patternSize)用於處理要列印的行總數,並且每一行都以換行符開頭。現在,巢狀的 for 迴圈(從 1 到 patternSize)用於列印數字螺旋圖案。

方法 2 - 使用 Stride 函式

Swift 提供了一個名為 stride() 的內建函式。stride() 函式用於從一個值移動到另一個值,並進行遞增或遞減。或者我們可以說 stride() 函式返回從起始值開始的序列,但不包括結束值,並且給定序列中的每個值都按給定量遞增。

語法

以下是語法 -

stride(from:startValue, to: endValue, by:count)

這裡,

from - 表示用於給定序列的起始值。

to - 表示限制給定序列的結束值

by - 表示每次迭代的步長,這裡正值表示向上迭代或遞增,負值表示向下迭代或遞減。

示例

以下程式顯示瞭如何使用 stride() 函式列印數字螺旋圖案。

import Swift
import Foundation

var number = 7
var patternSize = 2 * number - 1

// Handle each row
for x in stride(from:1, to:patternSize+1, by: 1){

   // Printing the number in spiral pattern
   for y in stride(from:1, to:patternSize+1, by: 1){
      print(max(abs(x-number), abs(y-number)) + 1, terminator: " ")
   }
    
   // Add new line
   print(" ")
}

輸出

7 7 7 7 7 7 7 7 7 7 7 7 7  
7 6 6 6 6 6 6 6 6 6 6 6 7  
7 6 5 5 5 5 5 5 5 5 5 6 7  
7 6 5 4 4 4 4 4 4 4 5 6 7  
7 6 5 4 3 3 3 3 3 4 5 6 7  
7 6 5 4 3 2 2 2 3 4 5 6 7  
7 6 5 4 3 2 1 2 3 4 5 6 7  
7 6 5 4 3 2 2 2 3 4 5 6 7  
7 6 5 4 3 3 3 3 3 4 5 6 7  
7 6 5 4 4 4 4 4 4 4 5 6 7  
7 6 5 5 5 5 5 5 5 5 5 6 7  
7 6 6 6 6 6 6 6 6 6 6 6 7  
7 7 7 7 7 7 7 7 7 7 7 7 7 

在上面的程式碼中,我們使用巢狀 for 迴圈以及 stride() 函式。最外面的 for 迴圈(從 1 到 patternSize+1)用於處理要列印的行總數,並且每一行都以換行符開頭。巢狀的 for 迴圈用於使用 stride() 函式列印數字螺旋圖案 -

for y in stride(from:1, to:patternSize+1, by: 1){
   print(max(abs(x-number), abs(y-number)) + 1, terminator: " ")
}

這裡的迭代從 1 開始到 patternSize,每次迭代增加 1,並以螺旋圖案列印從 1 到 7 的數字。

更新於: 2022-12-13

314 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告