Hoje, enquanto brincava com meus filhos, notei que um brinquedo aparentemente simples no parque escondia um desafio.
A roda possui um triângulo que aponta para um número, mas também possui três círculos que apontam para os números a cada 90 graus do primeiro. Tão:
Desafio (realmente simples)
Dado um número inteiro entre 1 e 12 (aquele apontado pelo triângulo) em qualquer forma aceitável, imprima também em qualquer forma aceitável e ordene os três números apontados pelos círculos (os a cada 90 graus).
Casos de teste
In Out
1 4, 7, 10
2 5, 8, 11
3 6, 9, 12
4 7, 10, 1
5 8, 11, 2
6 9, 12, 3
7 10, 1, 4
8 11, 2, 5
9 12, 3, 6
10 1, 4, 7
11 2, 5, 8
12 3, 6, 9
Este é o código-golfe , então o código mais curto para todos os idiomas vence!
0 -> 4, 7, 10
?Respostas:
Python 3 , 33 bytes
Experimente online!
Python 2 , 35 bytes
Experimente online!
fonte
Geléia , 8 bytes
Um link monádico que pega um número e retorna uma lista de números.
Experimente online! ou veja todos os casos .
Quão?
fonte
12Rṙm-3Ḋ
(saída em ordem inversa)Python 2 , 35 bytes
Experimente online!
fonte
MATL , 9 bytes
Experimente online!
Explicação
Considere a entrada
4
como um exemplo.fonte
R ,
2928 bytesObrigado a @ Giuseppe por salvar um byte!
Experimente online!
fonte
APL + WIN, 13 bytes
Explicação:
fonte
C (gcc) , 48 bytes
Experimente online!
fonte
JavaScript (ES6), 29 bytes
Semelhante à resposta do xnor .
Demo
Mostrar snippet de código
fonte
n=>[3,6,9].map(v=>(v+n)%12)
então percebeu que ele retorna 0, não 12 ...n=>[3,6,9].map(v=>(v+n)%12||12)
(mas são 31 bytes).Oitava , 25 bytes
Experimente online!
Função anônima bastante simples.
Primeiro, criamos uma matriz de
[1:12 1:12]
duas cópias do conjunto de números completo. Então indexamos para selecionar os valores dex+3, x+6, x+9
, ondex
é a entrada do número.A oitava é indexada em 1, para que possamos simplesmente selecionar os elementos da matriz com base na entrada (embora, para ser honesto, a indexação com 0 usaria o mesmo número de bytes aqui).
Isso parece usar um método exclusivo das outras respostas, pois, tendo duas cópias da matriz, não precisamos agrupar os índices usando o módulo.
fonte
mod
e não poderia torná-lo mais curto. Bem feito! Sinta-se à vontade para postar como resposta.Befunge-93,
201918 bytesExperimente online!
Explicação
Isso depende do comportamento específico do intérprete de referência: no final do arquivo, o
&
operador retorna o último valor que foi lido. É por isso que podemos reler com segurança a hora do stdin em cada iteração do loop.fonte
&
que fiz isso&
também pode ser usado como uma espécie de gerador de números aleatórios . Porém, isso é menos confiável, pois depende do compilador usado para construí-lo. Está funcionando no TIO no momento, mas houve um momento em que Dennis mudou para uma versão diferente do gcc e perdemos essa funcionalidade por um tempo.APL (Dyalog) , 12 bytes
Experimente online!
fonte
Japonês, 11 bytes
Tente
Explicação
Entrada implícita de número inteiro
U
. Gere uma matriz de 3 elementos (3Æ
) e, para cada elemento, aumenteU
em 3 (U±3
), module em 12 (uC
) e, porque12%12=0
, retorne o resultado OR 12 (ªC
).fonte
Flacidez Cerebral , 84 bytes
Experimente online!
Pelo menos eu venci a solução de maçaneta da maçaneta ...
Explicação:
fonte
Pitão , 12 bytes
Experimente online!
fonte
SOGL V0.12 , 9 bytes
Experimente aqui!
fonte
Limpo , 44 bytes
Experimente online!
fonte
Pushy , 12 bytes
Experimente online!
12 bytes
Uma alternativa para a mesma contagem de bytes:
Experimente online!
fonte
C # (.NET Core) , 42 bytes
Experimente online!
Essencialmente, apenas uma porta de muitas das outras respostas para C #.
fonte
K (oK) , 11 bytes
Solução:
Experimente online!
Exemplos:
Explicação:
Esta foi a primeira solução que veio à mente. Pode não ser o melhor ou o mais curto.
fonte
GolfScript, 46 bytes
Essa é a primeira vez que pratico código de golfe. Portanto, com minha falta de experiência, provavelmente não encontrei a melhor solução, mas preciso começar em algum lugar, certo?
Experimente online ou em todos os casos
fonte
Perl 6 , 23 bytes
Experimente online!
fonte
PHP, 37 + 1 bytes
Execute como pipe
-nR
ou experimente online .fonte
face ,
9694 bytesIsso simplesmente adiciona dois mods por 12, adiciona mais um e imprime. Então faz isso mais duas vezes.
Versão comentada:
Experimente online! (A nova linha à direita é necessária no TIO devido a um bug que foi corrigido em uma versão mais recente do face.)
fonte
m3*33
permite substituir os três+nn1
s por um+nn3
tio.run/…Quarto (gforth) , 39 bytes
A entrada é retirada da pilha e a saída é colocada na pilha
Experimente online!
Explicação
fonte
Haskell , 29 bytes
-2 bytes graças a Laikoni.
Experimente online!
Não é muito original, não ...
fonte
Rápido , 30 bytes
Experimente online!
Porto de muitas outras respostas para Swift
fonte
Wolfram Language (Mathematica) 35 bytes
O acima afirma, em notação infix, o que pode ser expresso mais claramente como
RotateLeft
giraRange[12]
, a sequência 1,2, ... 12, para a esquerda pelo número de entrada.Slot[1]
ou#
mantém o número de entrada, n.Por exemplo, com n = 4,
retorna a lista
Take...{3,9,3}
retorna todos os terceiros elementos dessa lista da posição 3 à posição 9, ou seja,fonte
Lote do Windows,
137 125 11168 bytesPorto do
add value to input and mod 12 + 1
fonte
Perl 5 , 30 bytes
Experimente online!
fonte
PowerShell , 30 bytes
Experimente online!
Porta das outras respostas (por exemplo, resposta Python 2 do xnor). Ho-hum.
fonte