Swift 中簡單 Fizz Buzz 演算法入門

對於那些剛接觸 Swift 程式設計的人以及來自不同程式設計基礎的人,例如 Python 或 Java,本文應該非常有用。在這篇文章中,我們將討論一個實現 swift 演算法的簡單解決方案。

Fizz Buzz

你可能已經將 Fizz Buzz 視為 Fizz Buzz,FizzBu​​zz 或 Fizz-Buzz; 他們都指的是同一件事。這個事物是今天討論的主要話題。首先,什麼是 FizzBu​​zz?

這是求職面試中常見的問題。

想象一下從 1 到 10 的一系列數字。

1 2 3 4 5 6 7 8 9 10

Fizz 和 Buzz 分別指的是 3 和 5 的倍數。換句話說,如果一個數字可被 3 整除,則用 fizz 代替; 如果一個數字可被 5 整除,則用 buzz 代替。如果一個數字同時是 3 和 5 的倍數,則該數字將替換為 fizz buzz。從本質上講,它模仿了著名的兒童遊戲 fizz buzz

要解決此問題,請開啟 Xcode 以建立一個新的遊樂場並初始化如下所示的陣列:

// for example 
let number  = [1,2,3,4,5]
// here 3 is fizz and 5 is buzz

為了找到所有的嘶嘶聲和嗡嗡聲,我們必須遍歷陣列並檢查哪些數字是嘶嘶聲,哪些是嗡嗡聲。為此,建立一個 for 迴圈來迭代我們初始化的陣列:

for num in number {
  // Body and calculation goes here
}

在此之後,我們可以簡單地使用 if else 條件和模組運算子在 swift ie - %中找到 fizz 和 buzz

for num in number {
  if num % 3 == 0 {
    print("\(num) fizz")
  } else {
    print(num)
  }
}

大! 你可以轉到 Xcode playground 中的除錯控制檯檢視輸出。你會發現 fizzes 已經在你的陣列中進行了整理。

對於 Buzz 部分,我們將使用相同的技術。在滾動瀏覽文章之前,我們先嚐試一下 - 完成此操作後,你可以根據本文檢查結果。

for num in number {
  if num % 3 == 0 {
    print("\(num) fizz")
  } else if num % 5 == 0 {
    print("\(num) buzz")
  } else {
    print(num)
  }
}

檢查輸出!

這是相當直接的 - 你將數字除以 3,fizz 並將數字除以 5,嗡嗡聲。現在,增加陣列中的數字

let number = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

我們將數字範圍從 1-10 增加到 1-15,以展示嘶嘶聲的概念。由於 15 是 3 和 5 的倍數,因此該數字應替換為 fizz buzz。試試自己並檢查答案!

這是解決方案:

for num in number {
  if num % 3 == 0 && num % 5 == 0 {
    print("\(num) fizz buzz")
  } else if num % 3 == 0 {
    print("\(num) fizz")
  } else if num % 5 == 0 {
    print("\(num) buzz")
  } else {
    print(num)
  }
}

等等……但它還沒結束! 該演算法的整個目的是正確定製執行時。想象一下,如果範圍從 1-15 增加到 1-100。編譯器將檢查每個數字以確定它是否可被 3 或 5 整除。然後它將再次遍歷數字以檢查數字是否可被 3 和 5 整除。程式碼基本上必須遍歷陣列中的每個數字兩次 - 它必須首先執行數字 3 然後再執行 5.為了加快這個過程,我們可以簡單地告訴我們的程式碼將數字直接除以 15。

這是最終的程式碼:

for num in number {
  if num % 15 == 0 {
    print("\(num) fizz buzz")
  } else if num % 3 == 0 {
    print("\(num) fizz")
  } else if num % 5 == 0 {
    print("\(num) buzz")
  } else {
    print(num)
  }
}

簡單到這一點,你可以使用你選擇的任何語言並開始使用

享受編碼