Dado um número inteiro estritamente positivo n , siga estas etapas:
- Crie uma matriz A com n 1 s.
- Se A tiver apenas um elemento, termine. Caso contrário, a partir do primeiro elemento, substituir cada par de A com a sua soma, deixando o último elemento como é se um comprimento 's é estranho, e repita esta etapa.
A saída deve conter um estado 's depois de cada passo, a fim do primeiro passo para o último. É proibido o uso de brechas padrão . Este é um desafio do código-golfe , portanto a solução com o menor número de bytes em cada idioma vence.
Casos de teste
Cada linha na saída desses exemplos é um estado. Você pode imprimir através de qualquer formato razoável.
Entrada: 1
[1]
Entrada: 4
[1, 1, 1, 1]
[2, 2]
[4]
Entrada: 13
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[2, 2, 2, 2, 2, 2, 1]
[4, 4, 4, 1]
[8, 5]
[13]
Entrada: 15
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[2, 2, 2, 2, 2, 2, 2, 1]
[4, 4, 4, 3]
[8, 7]
[15]
code-golf
arithmetic
Erik, o Outgolfer
fonte
fonte
Respostas:
05AB1E , 7 bytes
Experimente online!
fonte
MATL , 10 bytes
Experimente online!
Como funciona
fonte
Python 3 , 57 bytes
Experimente online!
Python 2 , 51 bytes
Experimente online!
-6 bytes no total graças ao tsh
Função recursiva. Para cada etapa, ele constrói uma lista de potências de
2
, de modo que a soma seja menor ou igual ao número inteiro especificado. Em seguida, acrescenta o restante, se for maior que0
.fonte
def f(i,j=1):l=i//j*[j]+[i%j][:i%j];print(l);i>j and f(i,j*2)
; Python 2 55 bytes:def f(i,j=1):l=i/j*[j]+[i%j][:i%j];print l;i>j>f(i,j*2)
i>j
não funcionou na minha solução anterior e esqueci-me de tentar depois.Gelatina , 6 bytes
Experimente online!
fonte
R , 65 bytes
-1 byte graças a Giuseppe.
Experimente online!
%/%
%%
k=2^i
n%/%k
k
n%%k
Aqui estou usando em
T
vez dek
, uma vez que é inicializado como oTRUE
qual é convertido em 1. Ainda preciso imprimir em+T
vez deT
evitar um vetor deTRUE
s na saída.fonte
+T
é mais curto queT+0
Pitão , 10 bytes
Experimente online!
-1 byte graças a FryAmTheEggman
fonte
JavaScript (V8) , 109 bytes
Experimente online!
fonte
Wolfram Language (Mathematica) ,
5554 bytesExperimente online!
Finalmente,Sow
/Reap
bate uma alternativa!Retorna uma lista de singleton contendo uma lista das etapas.
fonte
K (oK) ,
1517 bytesExperimente online!
fonte
J , 20 bytes
Experimente online!
-2 bytes graças ao Bubbler
fonte
[:
e()
.Gelatina , 6 bytes
-1 byte graças a Erik, o Outgolfer .
Experimente online!
fonte
JavaScript, 55 bytes
Experimente online!
Esta é basicamente a versão básica dos seguintes códigos:
fonte
Japonês
-R
, 13 bytesTente
fonte
Braquilog , 17 bytes
Experimente online!
Como terrivelmente desde que este é, ainda sinto um pouco inteligente para usar
.ẉȮ
: a maneira mais óbvia para imprimir algo, em seguida, verifique se o seu comprimento é de 1 seriaẉ₂l1
,ẉ₂~g
ouẉ₂≡Ȯ
, onde o≡
na última é necessária porqueẉ₂
unifica a sua entrada e saída antes de imprimi-los eȮ
é pré-restringido para ser uma lista de comprimento 1, portanto a unificação falha se a entrada não for uma lista de comprimento 1. No final de um predicado, esse recursoẉ₂
pode ser contornado, no entanto, por usando a variável de saída em vez de assinarẉ
:.ẉȮ
primeiro unifica sua entrada com a variável de saída, depois imprime a variável de saída e somente depois unifica a variável de saída comȮ
.fonte
Stax , 10 bytes
Execute e depure
Procedimento:
Fonte anotada:
fonte
Carvão , 19 bytes
Experimente online! Link é a versão detalhada do código. Usa o formato de saída padrão do Charcoal, que é um número por linha, com sub-matrizes com espaçamento duplo. Explicação:
fonte
Perl 5 , 46 bytes
Experimente online!
A saída é separada por espaço.
fonte
Perl 6 , 38 bytes
Experimente online!
Há algum atalho para a rotação parcial que eu não estou lembrando agora ...
Explicação:
fonte
Haskell , 75 bytes
Experimente online!
Funciona de trás para frente a partir da lista
[n]
até atingir uma lista de apenas alguns.Indo para a frente, eu poderia ter 80 bytes utilizando
chunksof
a partirData.List.Split
:Experimente online!
fonte
Ohm v2 , 8 bytes
Experimente online!
Se a saída em notação científica for permitida, caso contrário:
Ohm v2 , 9 bytes
Experimente online!
fonte
Gaia , 12 bytes
Experimente online!
fonte