Herausforderung
Eingang:
Eine ganze Zahl zwischen 2 und 62 (einschließlich).
Ausgabe:
von bis zum Äquivalent von in Basis , wobei Sie eine angemessene Darstellung für die Ziffern verwenden.
Jedoch:
Wenn die Zahl durch teilbar ist (abgerundet, z. B. wäre Basis 7 7/2 = 3,5, 3,5 + 1 = 4,5, auf 4 gerundet ), geben Sie 'Fizz' anstelle der Zahl aus .
Wenn die Zahl durch (aufgerundet, z. B. 11/3 = 3,666, 3,666 + 3 = 6,666, auf 7 gerundet ), geben Sie 'Buzz' aus.
Wie Sie wahrscheinlich erraten können, geben Sie 'Fizzbuzz' aus, wenn Ihre Zahl durch beide teilbar ist.
Beispiele
Verwenden Sie [0-9] , [AZ] und [az] als Ziffern
(Ich habe nur die ersten 10 Werte angegeben, um die Beispiele kurz zu halten - normalerweise gibt es 4990 weitere Elemente in jeder Sequenz)
Eingabe: 10 (also 'Fizz' = 6 und 'Buzz' = 7)
Ausgabe: 1, 2, 3, 4, 5, Fizz, Buzz, 8, 9, 10
Eingabe: 2 (also 'Fizz' = 2 und 'Buzz' = 4)
Ausgabe: 1, Fizz, 11, Fizzbuzz, 101, Fizz, 111, Fizzbuzz, 1001, Fizz
(Ich habe die ersten 50 Werte der folgenden Werte angegeben, um besser zu zeigen, wie sie funktionieren.)
Eingabe: 55 (also 'Fizz' = = und 'Buzz' = = )
Ausgabe: 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g, h, i, j, k, l, Buzz, n, o, p, q, r, Fizz, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N.
Regeln
- Standardlücken sind verboten
- Dies ist Code Golf, also gewinnt die kürzeste Antwort in Bytes
- Die Eingabe und Ausgabe kann über die Konsole oder über Funktionsargumente / -rückgaben erfolgen
- Führender / nachfolgender Leerraum ist in Ordnung, ebenso wie leere Zeilen
- Leerzeichen zwischen 'Fizz' und 'Buzz' sind nicht zulässig
- Jede Großschreibung von 'Fizz' / 'Buzz' / 'Fizzbuzz' ist in Ordnung.
- Ausgaben sollten durch Zeilenumbrüche getrennt werden.
- Wenn Sie ein Array von Basis-10-Ziffern zurückgeben, anstatt sie mit Zeichen darzustellen, müssen sie in der richtigen Reihenfolge sein!
buzz
erscheint das Wort in Basis 36 von selbst bei index553391
,fizz
at724463
undfizzbuzz
at1216820199599
. Leider ist keiner von ihnen durch die Zahlen dieser Basis teilbarAntworten:
Gelee ,
42 38 34 33 2932 Bytes+3, um strenge Formatierungsregeln einzuhalten
Ein volles Programm , das druckt 5000 Textzeilen, wobei jede Zeile eine Reihe von ganzen Zahlen (die Ziffern) oder eines enthält
fizz
,buzz
oderfizzbuzz
(funktioniert jenseits Basis 62).Probieren Sie es online aus!
Wie?
Beachten Sie, dass ... und
⌊b÷2+1⌋ =⌊b÷2⌋+1
⌈b÷3+3⌉=⌈b÷3+2⌉+1=⌈(b+6)÷3⌉+1=⌊(b+8)÷3⌋+1
Aktualisierung...
quelle
Holzkohle , 40 Bytes
Probieren Sie es online aus! Der Link führt zur ausführlichen Version des Codes. Erläuterung:
quelle
R ,
163131 BytesProbieren Sie es online aus!
Vielen Dank an @digEmAll für das Speichern von 23 Bytes. Ich habe dann @ digEmAlls Bemühungen, weitere 9 zu retten, weiter golfen lassen.
quelle
JavaScript (ES6),
117116 ByteProbieren Sie es online aus!
(auf 100 begrenzt, damit der TIO-Ausgang nicht explodiert)
quelle
|0
und was(5e3)
?Math.floor(n)
5e3
5000
Python 2 , 116 Bytes
Probieren Sie es online aus!
Oder mit
0-9a-zA-Z
Ausgabe:Python 2 , 143 Bytes
Probieren Sie es online aus!
quelle
05AB1E ,
393736 Bytes-2 Bytes durch Erstellen eines Ports mit @ JonathanAllans Jelly-Antwort .
Probieren Sie es online aus oder überprüfen Sie alle Testfälle (jedoch als Listenausgabe und mit den ersten 100 statt 5000).
Erläuterung:
Sehen Sie diese 05AB1E Spitze von mir (Abschnitt Wie das Wörterbuch benutzen? ) Zu verstehen , warum
”FizzÒÖ”
ist"Fizz Buzz"
.quelle
[input, input+8]
Teil und dem Filterteil danach (was ich jetzt macheDõQi yIв
, aber ich habe das Gefühl, dass es noch mehr Golf gespielt werden kann ..)Perl 6 , 91 Bytes
Probieren Sie es online aus!
Anonymer Codeblock, der eine Liste von Zeichenfolgen
Fizz/Buzz/FizzBuzz
oder eineumgekehrteListe von Ganzzahlen in der Basis zurückgibt .quelle
R 138 Bytes
Probieren Sie es online aus!
quelle
C # (Visual C # Interactive Compiler) ,
180171 ByteAusgaben wie Arnauld's Antwort. Vielen Dank an digEmAll für die Idee, einen Stack zum Umkehren der Ausgabe zu verwenden.
Probieren Sie es online aus!
quelle
05AB1E , 34 Bytes
Verwendet Jonathans mathematische Einsicht, dass
ceil(n/3+3)
=floor((n+8)//3)+1
Probieren Sie es online aus!
Erläuterung
quelle