// Reto: FizzBuzz (el clásico de las entrevistas).
// Imprime los números del 1 al n, pero:
// - Si es múltiplo de 3, imprime "Fizz".
// - Si es múltiplo de 5, imprime "Buzz".
// - Si es múltiplo de 3 y 5 a la vez, imprime "FizzBuzz".
// Entrada: n = 15
// Salida esperada: 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz
// Solución: iteramos del 1 al n y decidimos qué imprimir.
// El orden importa: primero revisamos el caso de 3 Y 5 a la vez.
function fizzbuzz(n) {
const resultado = [];
for (let i = 1; i <= n; i++) {
if (i % 3 === 0 && i % 5 === 0) {
resultado.push("FizzBuzz");
} else if (i % 3 === 0) {
resultado.push("Fizz");
} else if (i % 5 === 0) {
resultado.push("Buzz");
} else {
resultado.push(i);
}
}
return resultado;
}
console.log(fizzbuzz(15).join(", "));
// 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz
console.log(fizzbuzz(5).join(", "));
// 1, 2, Fizz, 4, Buzz
// Explicación:
// El operador % (módulo) da el residuo de una división. Si i % 3 es 0,
// el número es múltiplo de 3. La clave es revisar PRIMERO el caso de
// múltiplo de 3 y 5 a la vez; si lo dejáramos al final, nunca se
// alcanzaría porque las condiciones anteriores lo atraparían primero.
module.exports = { fizzbuzz };