Fizz Buzz is often the very first algorithm people learn. It's a classic and fundamental concept, serving as an entry point into algorithm learning — simple yet fun!
Problem Description
Given an integer n
, return a string array answer
(1-indexed) where:
answer[i] == "FizzBuzz"
ifi
is divisible by 3 and 5.answer[i] == "Fizz"
ifi
is divisible by 3.answer[i] == "Buzz"
ifi
is divisible by 5.answer[i] == i
(as a string) if none of the above conditions are true.
Key Concept
Modulus Operator
The main tool for this algorithm is the modulus operator (%
). This operator returns the remainder after division and helps us determine whether a number is divisible by another. It’s perfect for checking the conditions required in the Fizz Buzz problem.
Example Code
function fizzBuzz(num) {
for (var 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()
Related Problem
LeetCode 412. Fizz Buzz
/**
* @param {number} n
* @return {string[]}
*/
var fizzBuzz = function (n) {
let res = []
for (let i = 1; i < n + 1; i += 1) {
if (i % 3 === 0 && i % 5 === 0) {
res.push('FizzBuzz')
} else if (i % 3 === 0) {
res.push('Fizz')
} else if (i % 5 === 0) {
res.push('Buzz')
} else {
res.push(`${i}`)
}
}
return res
}
Further Exploration
LeetCode 2525. Categorize Box According to Criteria
/**
* @param {number} length
* @param {number} width
* @param {number} height
* @param {number} mass
* @return {string}
*/
var categorizeBox = function (length, width, height, mass) {
let isBulky =
length >= 10 ** 4 ||
width >= 10 ** 4 ||
height >= 10 ** 4 ||
length * width * height >= 10 ** 9
let isHeavy = mass >= 100
if (isBulky && isHeavy) {
return 'Both'
} else if (!isBulky && !isHeavy) {
return 'Neither'
} else if (isBulky && !isHeavy) {
return 'Bulky'
} else if (!isBulky && isHeavy) {
return 'Heavy'
}
}
Conclusion
Fizz Buzz is a classic beginner problem that teaches basic control flow and conditional logic. It’s a great starting point for building algorithmic thinking and preparing for more complex coding challenges.