FizzBuzz
FizzBuzz es un juego de contar. Los jugadores cuentan desde 1, pero algunos números se sustituyen por palabras: un número divisible por 3 se dice como Fizz, un número divisible por 5 como Buzz y un número divisible por 3 y por 5 como FizzBuzz. Todos los demás números se dicen tal cual. Los primeros quince turnos son 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz.
El orden de las comprobaciones es todo el truco. 15 es divisible por 3, así que, si compruebas primero si es divisible por 3 y devuelves "Fizz" enseguida, nunca llegarás al caso de ambos. Comprueba primero la regla combinada: un número divisible por 3 y por 5 es exactamente un número divisible por 15. Después comprueba 3, después 5 y solo entonces recurre al propio número.
La versión clásica imprime toda la secuencia. Aquí respondes para un número a la vez: dado n, devuelve lo que dice un jugador en el turno n. Por ejemplo, en el turno 9 se dice "Fizz", en el turno 10 "Buzz" y en el turno 11 "11".
Escribe una función llamada fizzBuzz que reciba un entero positivo n y devuelva una cadena: "FizzBuzz" si n es divisible tanto por 3 como por 5, "Fizz" si solo es divisible por 3, "Buzz" si solo es divisible por 5 y, en caso contrario, n escrito como una cadena decimal (por ejemplo, "7").
Restricciones: 1 <= n <= 10^9.
Función
- arg1integer
- Devuelvestring
Ejemplos
- Entrada
- arg1 = 15
- Salida
- "FizzBuzz"
- Entrada
- arg1 = 7
- Salida
- "7"
+11 pruebas ocultas al enviar
Pistas
Ábrelas de una en una. Cada una revela un poco más.
El operador de resto te indica si un número divide a otro:
nes divisible por 3 exactamente cuando el resto dendividido entre 3 es 0.Piensa en 15. Es divisible por 3 y por 5. ¿Cuál de tus comprobaciones debería ejecutarse primero para que 15 obtenga
"FizzBuzz"y no"Fizz"?Comprueba primero la divisibilidad por 15, después por 3 y después por 5. Si ninguno coincide, convierte el número en una cadena. Asegúrate de que la conversión escriba todos los dígitos, de modo que 10^9 dé como resultado
"1000000000"y no una notación científica.
Pronto habrá una explicación completa de este problema.
Problemas similares
Problemas que usan las mismas ideas. Resolver dos o tres es lo que fija un patrón.
Python
def fizzBuzz(n):
# Escribe el código aquíCaso 1
Caso 2
Entrada
arg1 = 15
Esperado
"FizzBuzz"