Problema
Para cada entero desde 1 hasta limit, usa Fizz para los múltiplos de 3, Buzz para los múltiplos de 5 y FizzBuzz para los múltiplos de ambos. En los demás casos, utiliza el número escrito como texto. Devuelve las entradas en orden en lugar de imprimirlas.
Implementa fizz_buzz(limit).
Entrada
limit: El último entero a incluir.
Salida
Devuelve una lista de cadenas, una por cada entero desde 1 hasta limit.
Restricciones
0 ≤ limit ≤ 10,000. Un limit de 0 produce una lista vacía.
Ejemplos
Entrada:
limit = 5
Salida esperada:
expected = ["1", "2", "Fizz", "4", "Buzz"]
Entrada:
long long limit = 5;
Salida esperada:
std::vector<std::string> expected = {"1", "2", "Fizz", "4", "Buzz"};
Entrada:
long limit = 5;
Salida esperada:
string[] expected = new string[] {"1", "2", "Fizz", "4", "Buzz"};
Explicación
3 es divisible por 3 y 5 es divisible por 5. Las demás entradas mantienen su número.
Entrada:
limit = 0
Salida esperada:
expected = []
Entrada:
long long limit = 0;
Salida esperada:
std::vector<std::string> expected = {};
Entrada:
long limit = 0;
Salida esperada:
string[] expected = new string[] {};
Explicación
No hay enteros desde 1 hasta 0, así que la lista es vacía.
Cómo abordarlo
Inténtalo primero por tu cuenta y luego abre las pistas una a una.
Pista 1
Cada posición depende solo de la divisibilidad del entero actual por 3 y 5.
Pista 2
Construye la lista de resultados en orden comprobando ambas condiciones de divisibilidad para cada número.
Pista 3
Maneja con cuidado el límite inferior: si el límite es 0, el resultado es una lista vacía.
Complejidad esperada
tiempo O(n), espacio extra O(n)
Referencias
Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.