Desafio
Entrada:
Um número inteiro entre 2 e 62 (inclusive).
Resultado:
Conte de ao equivalente a na base , usando qualquer representação razoável para os dígitos.
Contudo:
Se o número é divisível por (arredondado para baixo, por exemplo, a base 7 seria 7/2 = 3,5, 3,5 + 1 = 4,5, arredondado para 4 ), em seguida, imprima 'Fizz' em vez do número.
Se o número é divisível por (arredondado para cima, por exemplo, 11/3 = 3,666, 3,666 + 3 = 6,666, arredondado para 7 ), então produza 'Buzz'.
Como você provavelmente pode adivinhar, se o seu número é divisível por ambos, imprima 'Fizzbuzz'.
Exemplos
Usando [0-9] , [AZ] e [az] como dígitos
(Incluí apenas os 10 primeiros valores para manter os exemplos curtos - normalmente, existem 4990 itens a mais em cada sequência)
Entrada: 10 (então 'Fizz' = 6 e 'Buzz' = 7)
Saída: 1, 2, 3, 4, 5, Fizz, Buzz, 8, 9, 10
Entrada: 2 (então 'Fizz' = 2 e 'Buzz' = 4)
Saída: 1, Fizz, 11, Fizzbuzz, 101, Fizz, 111, Fizzbuzz, 1001, Fizz
(Incluí os 50 primeiros valores para mostrar melhor como eles funcionam)
Entrada: 55 (então 'Fizz' = = e 'Buzz' = = )
Saída: 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
Regras
- As brechas padrão são proibidas
- Este é o Code Golf, então a resposta mais curta em bytes ganha
- A entrada e a saída podem ser através do console ou argumentos / retornos de função
- O espaço em branco à esquerda / à direita é bom, assim como as linhas vazias
- Espaços entre 'Fizz' e 'Buzz' não são permitidos
- Qualquer variante de maiúscula de 'Fizz' / 'Buzz' / 'Fizzbuzz' está correta.
- As saídas devem ser separadas por novas linhas.
- Se você retornar uma matriz de 10 dígitos da base 10 em vez de representá-los com caracteres, eles deverão estar na ordem correta!
buzz
aparece por si só no índice553391
,fizz
em724463
efizzbuzz
em1216820199599
. Infelizmente, nenhum deles é divisível pelos números dessa base.Respostas:
Geléia ,
42 38 34 33 2932 bytes+3 para aderir a regras estritas de formatação
Um programa completo que imprime 5000 linhas de texto, cada linha contendo uma série de números inteiros (os dígitos) ou um dos
fizz
,buzz
oufizzbuzz
(funciona bem para além base 62).Experimente online!
Como?
atualizando ...
fonte
Carvão , 40 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
fonte
R ,
163131 bytesExperimente online!
Obrigado a @digEmAll por salvar 23 bytes. Depois, aprimorei os esforços do @ digEmAll para economizar mais 9.
fonte
JavaScript (ES6),
117116 bytesExperimente online!
(limitado a 100 para que a saída do TIO não exploda)
fonte
|0
e(5e3)
faz?Math.floor(n)
5e3
5000
Python 2 , 116 bytes
Experimente online!
Ou com
0-9a-zA-Z
saída:Python 2 , 143 bytes
Experimente online!
fonte
05AB1E ,
393736 bytes-2 bytes, criando uma porta da resposta Jelly de @JonathanAllan .
Experimente online ou verifique todos os casos de teste (mas como saída da lista e com os 100 primeiros em vez de 5000).
Explicação:
Veja esta dica 05AB1E meu (seção Como usar o dicionário? ) Para entender por que
”FizzÒÖ”
é"Fizz Buzz"
.fonte
[input, input+8]
parte, e da parte do filtro depois (que eu agora fazer comoDõQi yIв
, mas tenho a sensação de que pode ser golfed pouco mais ..)Perl 6 , 91 bytes
Experimente online!
Bloco de código anônimo que retorna uma lista de cadeias de caracteres
Fizz/Buzz/FizzBuzz
ou uma listainvertidade números inteiros na base.fonte
R , 138 bytes
Experimente online!
fonte
C # (compilador interativo do Visual C #) ,
180171 bytesSaídas como a resposta de Arnauld. Agradecemos a digEmAll pela idéia de usar uma pilha para reverter a saída.
Experimente online!
fonte
05AB1E , 34 bytes
Usa o insight matemático de Jonathan que
ceil(n/3+3)
=floor((n+8)//3)+1
Experimente online!
Explicação
fonte