Geben Sie bei einem Snippet der Fizz-Buzz- Ausgabe, bei dem alle Zahlen entfernt wurden, die richtigen Zahlen mit den niedrigstmöglichen Werten ein, damit das Fizz-Buzz- Snippet korrekt ist. Für die Zwecke dieser Herausforderung fizz
und buzz
haben ihre üblichen Werte von 3 bzw. 5.
Wenn die Eingabe eine ungültige Folge von fizz
, buzz
und Leerzeilen, dann statt Ausgang nur zzubzzif
(mit oder ohne Zeilenumbrüche).
Eingabe und Ausgabe können durch Zeilenumbrüche getrennte Zeilen sein oder das Format einer Zeichenfolge, das für Ihre Sprache geeignet ist.
Sie können die Großschreibung ignorieren oder tun, was Sie wollen.
Sie müssen wählen , eine oder mehr von diesen zu behandeln: fizzbuzz
, fizz buzz
, buzz fizz
, etc., aber Sie müssen mindestens eines dieser Formate wählen.
Sie können davon ausgehen , dass alle Eingaben einige Folgen von sind fizz
, buzz
und Leitungen entleeren.
Beispiele
Eingang:sprudelnAusgabe:
2
fizz
4
Eingang:
summen sprudelnAusgabe:
buzz
fizz
7
Eingang:
FizzbuzzAusgabe:
13
14
fizzbuzz
16
17
Eingang:
Ausgabe:
1
Eingang:
sprudeln sprudelnAusgabe:
zzubzzif
Eingang:
Ausgabe:
zzubzzif
Antworten:
Java, 205 Bytes
Nimmt a
String[]
als Eingabe und gibt a zurückString
.Erweiterter, lauffähiger Code:
quelle
C # 212 Bytes
Ich habe das Undenkbare getan. Ich habe eine
goto
Anweisung verwendet, um aus einer Schleife auszubrechen!Dies nutzt die Tatsache aus, dass die Sequenz innerhalb der ersten 15 Elemente beginnen muss.
Einrückung und neue Zeilen zur besseren Lesbarkeit:
quelle
break
Schlüsselwort?goto
Sprünge aus der inneren Schleife und über den Rest der Logik der äußeren Schleife.goto
auf C #! Wusste nicht einmal, dass C # es hatte!CJam, 72 Bytes
Das Programm wird mit einem Fehler beendet, wenn zzubzzif gedruckt werden muss .
Mit dem Java-Interpreter kann STDERR geschlossen werden, um eine eventuelle Fehlermeldung zu unterdrücken. Wenn Sie das Programm im CJam-Interpreter versuchen , ignorieren Sie alle Ausgaben nach der ersten Zeile.
Wie es funktioniert
quelle
Perl, 140 Bytes
Erläuterung
@a
ist das Array von Eingabezeilenwhile
Schleife,@s
hat die generierte Fizz-Buzz-Sequenz@x
ist dasselbe wie,@s
jedoch mit Zahlen, die durch leere Zeichenfolgen ersetzt werden, und einer neuen Zeile, die an jedes Element angehängt wird (um damit übereinzustimmen@a
)$c
ist ein Zähler von 1 bis 15@x
zur Eingabe@a
@s
oder ist die Ausgabe zzufzzib, je nachdem, ob sie$c
an ihre Grenzen stößt oder nichtquelle
Python, 176 Bytes
Könnte wohl viel besser sein, aber erster Versuch beim Golf. Tipps geschätzt :)
Geschrumpft
Original
quelle
#Java, 205 Bytes
als erste Zeile Ihrer Antwort.'fizz'*(n%3<1)+'buzz'*(n%5<1)
Sie können dann die Zuordnungen f und b entfernen.(f+b)[::-1]
kann dann ein Anruf bei einem bekannten "Fizzbuzz" sein, zg(15)[::-1]
.g(0)
funktioniert auch, um ein weiteres Byte zu speichern :)..] for
vorliegt..]for
. Wenn Sie diesen Trick['','fizz','']
Es gibt auch ein paar mehr zu entfernen, wenn Sie die Eingabeliste mit einer Listenkomposition vergleichen, anstatt all () zu verwendenif a==[g(i + x) for x in r(l)]