Avec un extrait de sortie fizz buzz avec tous les numéros supprimés, entrez les bons numéros avec les valeurs les plus basses possibles, de sorte que l’ extrait fizz buzz soit correct. Aux fins de ce défi, fizz
et buzz
ont leurs valeurs habituelles de 3 et 5, respectivement.
Si l'entrée est une séquence valide de fizz
, buzz
et des lignes vides, puis à la place juste sortie zzubzzif
(avec ou sans sauts de ligne).
L'entrée et la sortie peuvent être des lignes séparées par une nouvelle ligne ou tout autre format de tableau de chaînes convenant à votre langue.
Vous pouvez ignorer ou faire ce que vous voulez avec la capitalisation.
Vous devrez choisir de gérer un ou plusieurs de ces derniers : fizzbuzz
, fizz buzz
, buzz fizz
, etc, mais vous devez choisir au moins un de ces formats.
Vous pouvez supposer que toutes les entrées est une séquence de fizz
, buzz
et lignes vides.
Exemples
Contribution:pétillerSortie:
2
fizz
4
Contribution:
bourdonner pétillerSortie:
buzz
fizz
7
Contribution:
fizzbuzzSortie:
13
14
fizzbuzz
16
17
Contribution:
Sortie:
1
Contribution:
pétiller pétillerSortie:
zzubzzif
Contribution:
Sortie:
zzubzzif
Réponses:
Java, 205 octets
Prend a
String[]
comme entrée et retourne aString
.Code développé, exécutable:
la source
C #, 212 octets
J'ai fait l'impensable. J'ai utilisé une
goto
déclaration pour sortir d'une boucle!Cela tire parti du fait que la séquence doit commencer dans les 15 premiers éléments.
Indentation et nouvelles lignes pour la lisibilité:
la source
break
mot-clé?goto
sauts sortent de la boucle interne et passent par- dessus le reste de la logique de la boucle externe.goto
de C #! Je ne savais même pas que C # l'avait!CJam, 72 octets
Le programme se terminera avec une erreur s'il doit imprimer zzubzzif .
À l'aide de l'interpréteur Java, STDERR peut être fermé pour supprimer un éventuel message d'erreur. Si vous essayez le programme dans l' interpréteur CJam , ignorez toutes les sorties après la première ligne.
Comment ça marche
la source
Perl, 140 octets
Explication
@a
est le tableau de lignes d'entréewhile
boucle,@s
a la séquence fizz-buzz générée@x
est identique à@s
mais avec des nombres remplacés par des chaînes vides et une nouvelle ligne ajoutée à chaque élément (à faire correspondre@a
)$c
est un compteur de 1 à 15@x
devenir la même que l'entrée@a
@s
ou zzufzzib selon qu’elle se$c
trouvait ou non dans ses limites.la source
Python, 176 octets
Pourrait probablement faire beaucoup mieux, mais première tentative de golf. Conseils appréciés :)
Rétréci
Original
la source
#Java, 205 Bytes
tant que première ligne de votre réponse.'fizz'*(n%3<1)+'buzz'*(n%5<1)
Vous pouvez alors supprimer les affectations f et b.(f+b)[::-1]
peut alors être un appel à un "fizzbuzz" connu, par exempleg(15)[::-1]
.g(0)
aussi que ça marche pour sauver un autre octet :)..] for
peut être écrit..]for
. En appliquant cette astuce, vous obtenez 177 caractères['','fizz','']
Il y a aussi un peu plus à supprimer si vous comparez la liste en entrée avec une liste de composition plutôt que d'utiliser all ()if a==[g(i + x) for x in r(l)]