Wyzwanie
Wejście:
Liczba całkowita od 2 do 62 (włącznie).
Wynik:
Policz od do równowartości w podstawie , używając dowolnej rozsądnej reprezentacji cyfr.
Jednak:
Jeśli liczba jest podzielna przez (zaokrąglona w dół, np. Podstawa 7 będzie wynosić 7/2 = 3,5, 3,5 + 1 = 4,5, zaokrąglona do 4 ), a następnie wypisz „Fizz” zamiast liczby .
Jeśli liczba jest podzielna przez (zaokrąglona w górę, np. + 3 = 6,666, zaokrąglona do 7 ), następnie wyślij „Buzz”.
Jak zapewne można się domyślić, jeśli twój numer jest podzielny przez oba, wypisz „Fizzbuzz”.
Przykłady
Używanie [0–9] , [AZ] i [az] jako cyfr
(Podałem tylko pierwsze 10 wartości, aby przykłady były krótkie - zwykle w każdej sekwencji było o 4990 więcej pozycji)
Wejście: 10 (więc „Fizz” = 6 i „Buzz” = 7)
Wyjście: 1, 2, 3, 4, 5, Fizz, Buzz, 8, 9, 10
Wejście: 2 (więc „Fizz” = 2 i „Buzz” = 4)
Wyjście: 1, Fizz, 11, Fizzbuzz, 101, Fizz, 111, Fizzbuzz, 1001, Fizz
(Podałem pierwsze 50 wartości z poniższych, aby lepiej pokazać, jak działają)
Dane wejściowe: 55 (więc „Fizz” = = i „Buzz” = = )
Wyjście: 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
Zasady
- Standardowe luki są zabronione
- To jest Code Golf, więc wygrywa najkrótsza odpowiedź w bajtach
- Dane wejściowe i wyjściowe mogą odbywać się za pośrednictwem konsoli lub argumentów / zwrotów funkcji
- Wiodące / końcowe białe znaki są w porządku, podobnie jak puste linie
- Odstępy między „Fizz” a „Buzz” są niedozwolone
- Każdy wariant wielkich liter w „Fizz” / „Buzz” / „Fizzbuzz” jest w porządku.
- Wyniki powinny być oddzielone znakami nowej linii.
- Jeśli zwrócisz tablicę 10 „cyfr” zamiast reprezentować je za pomocą znaków, muszą one być w odpowiedniej kolejności!
buzz
samo pojawia się w indeksie553391
,fizz
w724463
ifizzbuzz
o1216820199599
. Niestety, żadna z nich nie jest podzielna przez liczby tej bazyOdpowiedzi:
Galaretka ,
42 38 34 33 2932 bajtów+3, aby zastosować się do ścisłych zasad formatowania
Pełen program, który drukuje 5000 linijek tekstu, każdy wiersz zawierający szereg liczb całkowitych (cyfry) lub jednym z
fizz
,buzz
lubfizzbuzz
(działa dobrze poza podstawy 62).Wypróbuj online!
W jaki sposób?
Zwróć uwagę, że ... i
⌊b÷2+1⌋ =⌊b÷2⌋+1
⌈b÷3+3⌉=⌈b÷3+2⌉+1=⌈(b+6)÷3⌉+1=⌊(b+8)÷3⌋+1
aktualizuję ...
źródło
Węgiel drzewny , 40 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
źródło
R ,
163131 bajtówWypróbuj online!
Dzięki @digEmAll za zaoszczędzenie 23 bajtów. Następnie kontynuowałem grę w golfa @ digEmAll, aby uratować kolejne 9.
źródło
JavaScript (ES6),
117116 bajtówWyświetla cyfry rozdzielane przecinkami, przy czym każda cyfra jest wyrażana jako liczba dziesiętna (np. to a to ).1920 19 2120 1,1
Wypróbuj online!
(ograniczony do 100, aby wyjście TIO nie wybuchło)
źródło
|0
i co(5e3)
robi?Math.floor(n)
5e3
5000
Python 2 , 116 bajtów
Wypróbuj online!
Lub z
0-9a-zA-Z
wyjściem:Python 2 , 143 bajty
Wypróbuj online!
źródło
05AB1E ,
393736 bajtów-2 bajtów, tworząc port @JonathanAllan jest Jelly odpowiedź .
Wypróbuj online lub sprawdź wszystkie przypadki testowe (ale jako listę wyników i pierwsze 100 zamiast 5000).
Wyjaśnienie:
Zobacz moją wskazówkę 05AB1E (sekcja Jak korzystać ze słownika? ), Aby zrozumieć, dlaczego tak
”FizzÒÖ”
jest"Fizz Buzz"
.źródło
[input, input+8]
częścią, a potem z filtrem (co teraz robięDõQi yIв
, ale mam wrażenie, że można trochęPerl 6 , 91 bajtów
Wypróbuj online!
Anonimowy blok kodu, który zwraca listę ciągów znaków
Fizz/Buzz/FizzBuzz
lubodwróconąlistę liczb całkowitych w bazie.źródło
R , 138 bajtów
Wypróbuj online!
źródło
C # (interaktywny kompilator Visual C #) ,
180171 bajtówWyjścia takie jak odpowiedź Arnaulda. Dzięki digEmAll za pomysł użycia stosu do odwrócenia danych wyjściowych.
Wypróbuj online!
źródło
05AB1E , 34 bajty
Wykorzystuje matematyczny wgląd Jonathana, który
ceil(n/3+3)
=floor((n+8)//3)+1
Wypróbuj online!
Wyjaśnienie
źródło