A raíz de los muchos (¿dos?) Desafíos relacionados con FizzBuzz publicados recientemente en PPCG, he tenido la tentación de proponer los míos. Mirad...
Fizz Buzz Lightyear
Escriba un programa o función que tome un número entero ny se imprima FizzBuzzpara cualquier número divisible por 15, Fizzpara cualquier número divisible por 3 y Buzzpara cualquier número divisible por 5, hasta (e incluido) n. La salida para todos idebe ir seguida de una nueva línea. Pero hay un giro!
Por cada tercera vez que imprime Buzz, Buzz Lightyear finalmente atiende su llamada y aterriza en su programa. Luego se presenta, pero desde que se estrelló, parte de lo que dijo se mezcla con la salida de su programa:
Buzz Lightyear, Space Ranger, Universe Protection Unit.
FizzBuzz Lightyear, Space Ranger, Universe Protection Unit.
(es decir, sólo se anexados Lightyear, Space Ranger, Universe Protection Unit.a Buzzo FizzBuzz- lo que es lo que le ha mostrado lo contrario Tenga en cuenta el espacio inicial.)
Sin embargo, Buzz Lightyear, siendo el Space Ranger que es, tiene una audición muy aguda, por lo que la impresión FizzBuzzcontará para su Buzzcuenta .
Luego, Buzz se queda para defender su computadora de toda esa salida malvada, hasta que alcanza otro número que es divisible por 5 (o 15, ya que también son divisibles por 5). Lo que eso significa es que hasta que tenga que imprimir Buzz(o FizzBuzz) nuevamente, no imprime nada en absoluto.
Cuando finalmente alcanzas esa condición, Buzz se va:
To infinity and beyond!
Salida de ejemplo
Este es el resultado esperado para n = 25: (observe cómo se salta de 16 a 19)
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz Lightyear, Space Ranger, Universe Protection Unit.
To infinity and beyond!
Fizz
22
23
Fizz
Buzz
Reglas
Nueva línea final opcional es aceptable.
Este es el código de golf; como tal, el código más corto, en bytes, gana.
Suponga que lo dado nes válido y mayor o igual a 15 (que es cuando el desafío se desvía por primera vez del fizzbuzz estándar)
Buzz te saluda cuando el "contador de Buzz" (que cuenta ambos Buzzy FizzBuzz) golpea 3; él sale cuando se imprime el siguiente Buzz(incluyendo, nuevamente, ambos Buzzy FizzBuzz).
El número en el que sale no cuenta para el próximo "contador de zumbidos"; en su lugar, debe comenzar a contar los Buzzes nuevamente desde 0. Por ejemplo, un programa que se ejecuta con n = 25(salida de ejemplo) debe terminar con un "Contador de zumbidos" de 1, ya que esa es la cantidad de veces que Buzzse imprimió desde la última vez que se fue.
En caso de que ncaiga entre una de las llegadas de Buzz y una de sus salidas (es decir, él todavía está allí, no está imprimiendo nada), se espera una terminación elegante. Por lo tanto, la última línea de salida sería su introducción.
Las lagunas estándar están prohibidas.
ncae entre la llegada de Buzz Lightyear y su partida?