Sua tarefa é produzir um Magical 8 Trapezium:
1 × 8 + 1 = 9
12 × 8 + 2 = 98
123 × 8 + 3 = 987
1234 × 8 + 4 = 9876
12345 × 8 + 5 = 98765
123456 × 8 + 6 = 987654
1234567 × 8 + 7 = 9876543
12345678 × 8 + 8 = 98765432
123456789 × 8 + 9 = 987654321
- Saída no idioma escolhido no menor número de bytes possível.
- Observe o número de espaços no início de cada linha para manter a forma do trapézio.
- Espaços à direita são permitidos.
- Você pode usar
×
ou a letra x - o que você preferir.
code-golf
kolmogorov-complexity
rybo111
fonte
fonte
Respostas:
Python 2, 59 bytes
Os números
a
ei
a equaçãoa * 8 + i
são gerados aritmeticamente. Cada linhai
é incrementada ea
tem o próximo dígito anexado viaa=a*10+i
. Por exemplo, sea=12345, i=5
, entãoi
se torna6
, então o novoa
é o12345*10 + 6
que é123456
.Armazená-los como números, em vez de cadeias, permite calcular o RHS conforme indicado pela equação
a*8+i
, que é mais curta que a reversão de cadeias.fonte
V , 37 bytes
Experimente online!
Contém não imprimível, então aqui está um hexdump:
fonte
05AB1E ,
32313028 bytesCódigo:
Usa a codificação CP-1252 . Experimente online! .
fonte
.c
não é utilizável aqui?PHP,
105896057 bytesminha primeira tentativa de golfe aqui (graças a manatwork & user55641)
59.
89 (minha própria tentativa)
105 (primeiro)
fonte
$t.=10-$i
por$s*8+$i
. tio.run/##K8go@G9jXwAk0/…$s*8+$i
vez de$t.=10-$i
salvar mais dois.Pitão, 32 bytes
Experimente online!
Obrigado a @FryAmTheEggman por salvar 2 bytes. Obrigado a @KennyLau por salvar 3 bytes.
fonte
s
não se une ao espaço - se une sem delimitador.CJam,
393836 bytesAgradecemos ao Optimizer por economizar 2 bytes.
Teste aqui.
Contagem de mesmos bytes:
Isso requer a versão mais recente, disponível em Experimente online!
fonte
Python 2,
87847875 bytesExperimente online
Uma versão anterior usa alguma mágica de cordas.
A conversão
range(1,10)
para uma string fornece[1, 2, 3, 4, 5, 6, 7, 8, 9]
, e isso é bom, já que todo número é apenas um dígito. Portanto,123456789
é fácil obter a string disso`range(1,10)`[1::3]
. O intervalo invertido é`range(1,10)`[-2::-3]
. Em seguida, para chegar apenas ao nível desejado para cada iteração, corte-a em um3*n
ou em3*(9-n)
(27-3*n
) para os dígitos invertidos.fonte
for n in range(1,10):print"%9s"%s[:n]+" x 8 + %s = "%n+s[::-1][:n]
por 80 bytes.s="123456789";n=1;exec'print"%9s"%s[:n],"x 8 + %s ="%n,s[::-1][:n];n+=1;'*9
economiza mais três! Até 75.Perl, 49 bytes
Uso
fonte
Ruby,
77736560 bytesExperimente online ~
Principais reformulações de @manatwork
Outra revisão do @xsot
fonte
puts'%9d x 8 + %d = %d'%[k=[*1..i]*'',i,k.to_i*8+i]
.(1..9).map
→1.upto(9)
%9d
ser uma opção de formatação para números inteiros almofada como essaa=i=0;9.times{puts"%9d x 8 + %d = %d"%[a=a*10+i+=1,i,a*8+i]}
Java 10,
151133130129126110 bytesExperimente online.
Explicação:
fonte
x
vez do sinal de multiplicação.s
a"\n"
e retirando"\n"+
dofor
circuito×
é de 2 bytes em vez de 1, comox
..s
ao resultado em cada iteração também?return o
vez deSystem.out.print(o)
? Além disso, você pode alterar para o Java 10 e salvar comvar
e lambdasC, 74 bytes
fonte
C #, 113 bytes
se você tiver alguma maneira de melhorar esta solução, sinta-se à vontade para compartilhar.
fonte
;n=10*n+ ++i
no loop for pode ser alterado para;n=++i+10*n
. Além disso,+" x "+"8 + "+
pode ser alterado para+" x 8 + "+
. para salvar mais 3 bytes.Lote, 117 bytes
Sim, isso significa 16% de sinais em uma linha; isso é lote para você!
fonte
Haskell, 92 bytes
Como funciona:
fonte
Retina , 66 bytes
A contagem de bytes assume a codificação ISO 8859-1. O avanço de linha principal é significativo.
Experimente online!
fonte
Pyke,
3029 bytesExperimente aqui!
fonte
PowerShell v2 +,
8564585752 bytesLoops de 8 a 0
8..0|%{...}
através do operador de faixa. A cada iteração, produzimos uma concatenação de string composta por (o número apropriado de espaços" "*$_
), mais uma-join
string ed de (um intervalo de1
até um número auxiliar pré-incrementado++$i
, mais o bit do meio" x 8 + $i = "
, mais o intervalo final do9
número atual$_
pre -incrementado).Um grande truque aqui é alavancar a "preferência de esquerda" para a tipografia, o que nos permite "adicionar" matrizes dentro das
-join
parênteses, o que significa que usamos apenas um-join
operador.Exemplo
fonte
%{
Seus olhos estão bem?MATL ,
383635 bytesExperimente online!
fonte
J, 51 bytes
Cria a sequência
123456789
e, em seguida, opera em prefixos e sufixos para criar a saída.Uso
fonte
JavaScript ES6 (88)
Aproveitando o novo
repeat
método, backticks e modelos ...fonte
alert
vez deconsole.log
, ele pode economizar alguns bytes!R,
107103 bytesUngolfed:
Resultado:
fonte
APL (Dyalog Unicode) ,
615239 bytes SBCSExperimente online!
-9 bytes usando o
10⊥
truque para analisar o número, em vez de uma redução. Obrigado a @ Adám por -13!Explicação:
fonte
JavaScript (ES6), 99 bytes
Onde
\n
representa um caractere literal de nova linha. A segunda versão gera uma nova linha à direita. Eu vim com uma fórmula para os números,('1'.repeat(9-i)+0+i)/9
mas o preenchimento era mais fácil de fazer dessa maneira.fonte
Brainfuck , 232 bytes
Experimente online!
Pode ser jogado muito mais longe ...
fonte
Javascript (usando biblioteca externa) (143 bytes)
Link para lib: https://github.com/mvegh1/Enumerable/
Explicação do código: Crie o intervalo de 1 a 9 e, para cada valor, escreva uma linha correspondente ao predicado complexo. O predicado recebe o valor inteiro atual e cria um intervalo que mede 10 elementos currentValue, a fim de criar tantos espaços. Esses espaços são concatenados com a parte da fórmula da linha e, em seguida, são concatenados com a final do intervalo que corresponde ao número de elementos como front-end, na ordem inversa.
Nota: Na imagem, a primeira linha está desativada em um espaço porque o console adicionou aspas, pois o valor de retorno é uma sequência. O valor real está formatado corretamente
fonte
05AB1E , 24 bytes
Experimente online!
Usa uma versão mais recente que o desafio, que agora é permitido.
fonte
©
e alterar®
paray
para salvar um byte.Tela , 20 bytes
Experimente aqui!
fonte
VBA (Excel), 51 bytes
Usando janela imediata
fonte
k (77 bytes)
Provavelmente poderia ser encurtado um pouco mais
Exemplo:
fonte
golflua, 56 caracteres
Exemplo de execução:
fonte