# 412. Fizz Buzz

## Description

Given an integer n, return a string array answer (1-indexed) where:

• answer[i] == "FizzBuzz" if i is divisible by 3 and 5.
• answer[i] == "Fizz" if i is divisible by 3.
• answer[i] == "Buzz" if i is divisible by 5.
• answer[i] == i (as a string) if none of the above conditions are true.

Example 1:

Input: n = 3
Output: ["1","2","Fizz"]


Example 2:

Input: n = 5
Output: ["1","2","Fizz","4","Buzz"]


Example 3:

Input: n = 15
Output: ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]


Constraints:

• 1 <= n <= 104

## Solutions

For each integer ranging from 1 to n, we represent the number using a string. The process for generating this string representation involves several steps based on the divisibility of the number:

1. Divisibility by 3: If the number is divisible by 3, we append “Fizz” to its string representation.
2. Divisibility by 5: Similarly, if the number is divisible by 5, we append “Buzz” to the string representation.
3. Fallback to Number: After evaluating divisibility by 3 and 5, if the string representation remains unchanged (indicating the number is neither divisible by 3 nor 5), we then use the number itself as its string representation.

It’s important to note that a number can be divisible by both 3 and 5. In such cases, both conditions are evaluated, and the string representation will include both “Fizz” and “Buzz”, respectively.

Once the string representation for each number is determined, we add it to a result list. Finally, this list is returned as the output of the operation.

This approach ensures that each number is appropriately labeled with “Fizz”, “Buzz”, or both, depending on its divisibility by 3 and 5, or represented by the original number when it meets neither condition.

• class Solution {
public List<String> fizzBuzz(int n) {
List<String> ans = new ArrayList<>();
for (int i = 1; i <= n; ++i) {
String s = "";
if (i % 3 == 0) {
s += "Fizz";
}
if (i % 5 == 0) {
s += "Buzz";
}
if (s.length() == 0) {
s += i;
}
}
return ans;
}
}

• class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> ans;
for (int i = 1; i <= n; ++i) {
string s = "";
if (i % 3 == 0) s += "Fizz";
if (i % 5 == 0) s += "Buzz";
if (s.size() == 0) s = to_string(i);
ans.push_back(s);
}
return ans;
}
};

• class Solution:
def fizzBuzz(self, n: int) -> List[str]:
ans = []
for i in range(1, n + 1):
if i % 15 == 0:
ans.append('FizzBuzz')
elif i % 3 == 0:
ans.append('Fizz')
elif i % 5 == 0:
ans.append('Buzz')
else:
ans.append(str(i))
return ans


• func fizzBuzz(n int) []string {
var ans []string
for i := 1; i <= n; i++ {
s := &strings.Builder{}
if i%3 == 0 {
s.WriteString("Fizz")
}
if i%5 == 0 {
s.WriteString("Buzz")
}
if s.Len() == 0 {
s.WriteString(strconv.Itoa(i))
}
ans = append(ans, s.String())
}
return ans
}

• const fizzBuzz = function (n) {
let arr = [];
for (let i = 1; i <= n; i++) {
if (i % 15 === 0) arr.push('FizzBuzz');
else if (i % 3 === 0) arr.push('Fizz');
else if (i % 5 === 0) arr.push('Buzz');
else arr.push(${i}); } return arr; };  • class Solution { /** * @param Integer$n
* @return String[]
*/
function fizzBuzz($n) {$rs = [];
for ($i = 1;$i <= $n;$i++) {
if ($i % 3 != 0 &&$i % 5 != 0) {
array_push($rs, strval($i));
} elseif ($i % 3 == 0 &&$i % 5 != 0) {
array_push($rs, 'Fizz'); } elseif ($i % 3 != 0 && $i % 5 == 0) { array_push($rs, 'Buzz');
} else {
array_push($rs, 'FizzBuzz'); } } return$rs;
}
}