À la suite des nombreux (deux?) Défis liés à FizzBuzz publiés récemment sur PPCG, j'ai été tenté de créer le mien. Voir...
Fizz Buzz Lightyear
Écrivez un programme ou une fonction qui prend un entier net s'imprime FizzBuzzpour tout nombre divisible par 15, Fizzpour tout nombre divisible par 3 et Buzzpour tout nombre divisible par 5, jusqu'à (et y compris) n. La sortie pour tous idoit être suivie d'une nouvelle ligne. Mais il y a une torsion!
Pour chaque troisième fois que vous imprimez Buzz, Buzz Lightyear tient enfin compte de votre appel et se bloque dans votre programme. Il se présente ensuite - mais depuis qu'il s'est écrasé, une partie de ce qu'il a dit se confond avec la sortie de votre programme:
Buzz Lightyear, Space Ranger, Universe Protection Unit.
FizzBuzz Lightyear, Space Ranger, Universe Protection Unit.
(c'est-à-dire, ajoutez uniquement Lightyear, Space Ranger, Universe Protection Unit.à Buzzou FizzBuzz- quoi que ce soit que vous auriez affiché autrement. Notez l'espace de tête)
Cependant, Buzz Lightyear, étant le Space Ranger qu'il est, a une audition très aiguë, et donc l' impression FizzBuzzcomptera pour votre Buzzcompte .
Ensuite, Buzz traîne pour défendre votre ordinateur contre toutes ces sorties maléfiques, jusqu'à ce que vous atteigniez un autre nombre divisible par 5 (ou 15, car ceux-ci sont également divisibles par 5). Cela signifie que jusqu'à ce que vous deviez imprimer Buzz(ou FizzBuzz) à nouveau, vous n'imprimez rien du tout.
Lorsque vous atteignez enfin cette condition, Buzz part:
To infinity and beyond!
Exemple de sortie
Il s'agit de la sortie attendue pour n = 25: (remarquez comment elle saute de 16 à 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
Règles
Un retour à la ligne facultatif est acceptable.
C'est le golf de code; en tant que tel, le code le plus court, en octets, gagne.
Supposons que donné nest valide et supérieur ou égal à 15 (c'est-à-dire lorsque le défi s'écarte pour la première fois du fizzbuzz standard)
Buzz vous salue lorsque le "compteur Buzz" (qui compte à la fois Buzzet FizzBuzz) atteint 3; il part lorsque le suivant Buzz(y compris, encore une fois, les deux Buzzet FizzBuzz) est imprimé.
Le nombre dans lequel il part ne compte pas pour le prochain "Buzz counter"; vous devriez plutôt recommencer à compter les Buzzes à partir de 0. Par exemple, un programme fonctionnant avec n = 25(exemple de sortie) devrait se terminer par un "compteur de buzz" de 1, car c'est le nombre de fois qui a Buzzété imprimé depuis le dernier départ.
En cas de nchute entre l'un des arrivées de Buzz et l'un de ses départs (c'est-à-dire qu'il est toujours là - vous n'imprimez rien), une résiliation gracieuse est attendue. Par conséquent, la dernière ligne de sortie serait son introduction
Les failles standard sont interdites.
nchute entre l'arrivée de Buzz Lightyear et son départ?