Naquele dia, os discadores automáticos de telefone usavam cartões perfurados com uma coluna para cada dígito do número a ser discado. As colunas tinham sete linhas. As três primeiras linhas representaram os números (1,2,3), (4,5,6) e (7,8,9), respectivamente. As últimas três fileiras giraram esse arranjo em 90 °: (1,4,7), (2,5,8) e (3,6,9). A linha do meio foi usada para 0. Qualquer dígito 1 a 9 teria dois furos - um nas três primeiras linhas e um nas três linhas inferiores. Zero teria apenas a linha do meio perfurada. Vamos visualizar a coluna perfurada para o número 6 ( .
não x
perfurada, perfurada, o guia à esquerda é apenas para ilustrar a codificação):
123 .
456 x
789 .
0 .
147 .
258 .
369 x
Procuramos quais linhas contêm o número que estamos tentando discar. Para 6, esta é a segunda linha e a nona linha. Essas duas linhas são perfuradas, as cinco linhas restantes não são perfuradas. Aqui estão os padrões perfurados para todos os dígitos de 0 a 9:
0 1 2 3 4 5 6 7 8 9
123 . x x x . . . . . .
456 . . . . x x x . . .
789 . . . . . . . x x x
0 x . . . . . . . . .
147 . x . . x . . x . .
258 . . x . . x . . x .
369 . . . x . . x . . x
Seu objetivo é (escrever um programa ou função) perfurar esses cartões para mim.
Entrada: Um número, obtido em qualquer formato razoável (sequência, número inteiro, lista de números inteiros, etc.), que não exceda 9999999999999.
Saída: a grade de colunas perfuradas correspondente à entrada de número. Você não precisa dos cabeçalhos ou espaçamento extra mostrados acima, apenas das próprias colunas perfuradas. As novas linhas iniciais / finais estão ok, assim como o espaço em branco entre linhas / colunas , desde que consistente . Falando nisso, desde que sejam consistentes, você pode usar qualquer caractere (sem espaço em branco) para perfurar e qualquer outro caractere para não perfurar (embora deva ser óbvio, especifique quais caracteres você está usando).
Isso é código-golfe, então o código mais curto vence. As brechas padrão não são permitidas.
Casos de teste (todos usados .
para não perfurados, x
para perfurados):
In: 911
Out: .xx
...
x..
...
.xx
...
x..
In: 8675309
Out: ....x..
.x.x...
x.x...x
.....x.
..x....
x..x...
.x..x.x
In: 5553226
Out: ...xxx.
xxx...x
.......
.......
.......
xxx.xx.
...x..x
Respostas:
Gelatina , 13 bytes
Experimente online!
1
= perfurado,0
= não perfurado.fonte
Pitão, 25 bytes
Usa
0
para perfurados e não perfurados"
.Experimente aqui
Explicação
fonte
JavaScript (ES6),
6054 bytesRecebe a entrada como uma matriz de números inteiros. Retorna uma matriz binária, com 0 = não perfurado / 1 = perfurado.
Experimente online!
fonte
05AB1E ,
1615 bytesUsa 0 e 1 .
Experimente online!
Explicação
fonte
SOGL V0.12 , 23 bytes
Experimente aqui!
Compressão.
fonte
Python 2 , 84 bytes
Experimente online!
0/1
é usado para não perfurado / perfurado.fonte
Python 3 ,
8480 bytesExperimente online!
fonte
C (clang) ,
108107 bytesExperimente online!
Pega o número da entrada como string. Imprime a saída em
.
eX
como nos exemplos.Créditos
-1 byte thanks @ somente ASCII
fonte
putchar(".X"[(c--?16<<c%3|1<<c/3:8)>>i&1]))c-=48
vez dec-=48,putchar(".X"[(c--?16<<c%3|1<<c/3:8)>>i&1]))
J ,
3120 bytes-11 bytes graças ao FrownyFrog!
Experimente online!
J , 31 bytes
Experimente online!
Toma a entrada como uma lista de dígitos
0 - não perfurado, 1 - perfurado
Explicação:
fonte
Tela ,
2725 bytesExperimente aqui!
fonte
Carvão , 28 bytes
Experimente online! Link é a versão detalhada do código. Usa 0/1, mas pode suportar caracteres arbitrários a um custo de 1 byte: Experimente online! . Explicação:
fonte
Perl 5
-F
, 52 bytesExperimente online!
Usa
1
para perfurados e não perfurados0
.fonte