跳至主要内容

[演算法] Fizz Buzz

@([Udemy] Learning Algorithms in JavaScript from Scratch)[algorithm, javaScript]

此系列筆記主要依照 [Udemy] Learning Algorithms in JavaScript from Scratch by Eric Traub 的課程脈絡加以整理,但部分程式碼是消化後以自己較易理解的方式重新撰寫,因此和原課程內容有些出入。

問題描述

透過一個 fizzBuzz 函式,裡面代入參數 num

  • 會輸出從 1 ~ num 的數值
  • 但若這個輸出的數值是 3 的倍數,則輸出 fizz
  • 但若這個輸出的數值是 5 的倍數,則輸出 buzz
  • 但若這個輸出的數值同時是 3 和 5 的倍數,則輸出 fizzBuzz
function fizzBuzz (num) {...}

fizzBuzz(20)

期望結果:

Imgur

所須知識

Modulus Operator(餘數運算子)

10 % 3; // 1
12 % 5; // 2

程式示範

/**
* FizzBuzz Algorithm
**/

function fizzBuzz(num) {
for (let i = 1; i <= num; i++) {
if (i % 15 === 0) {
console.log('fizzBuzz');
} else if (i % 3 === 0) {
console.log('fizz');
} else if (i % 5 === 0) {
console.log('buzz');
} else {
console.log(i);
}
}
}

fizzBuzz(20);
資訊

資料來源