Tome um número inteiro positivo como entrada. Iniciar com e repetidamente aumentar pela maior potência inteira de dez tal que e .
Repita até e retorne uma lista de todos os valores intermediários de , incluindo o inicial e o final .
Durante esse processo, o crescimento será inicialmente limitado pela desigualdade anterior e somente depois pela última; o crescimento assumirá a forma de um período inicial de "expansão", durante o qual é aumentado por potências cada vez maiores, seguido de um período de "contrato", durante o qual é aumentado por potências cada vez menores para "aumentar o zoom" no número correto.
Casos de teste
1 => [1]
10 => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
321 => [1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 20, 30, 40, 50, 60, 70, 80, 90,
100, 200, 300, 310, 320, 321]
1002 => [1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 20, 30, 40, 50, 60, 70, 80, 90,
100, 200, 300, 400, 500, 600, 700, 800, 900,
1000, 1001, 1002]
Isso é código-golfe , então a resposta mais curta (em bytes) vence.
Respostas:
Haskell ,
72686463 bytesExperimente online!
Obrigado Sriotchilism O'Zaic por -4 bytes!
Uso
Explicação
fonte
(^)
é uma precedência mais alta do que(+)
você não precisa de parênteses à volta da(^)
expressão. O mesmo vale para(!)
e(:)
pred.length.show.min c$t-c
pode ser reduzido paralength(show.min c$t-c)-1
. As funções anônimas são aceitáveis; portanto, você pode abandonar a liderança,f=
conforme explicado em nosso guia sobre regras de golfe em Haskell .c!t=c: if t>c then (c+10^(length(show.min c$t-c)-1))!t else []
. Isso permite aplicar esta dica para economizar mais alguns bytes: Experimente online!JavaScript (ES6), 50 bytes
Experimente online!
Quão?
Teoria
As etapas a seguir são repetidas atén=0 :
Implementação
'10'
'10'
fonte
k
para algo completamente diferente do que na descrição do desafio (na verdade o seun
é uma mistura de OP den
ek
e a suax
é a suai
.)Python 2 , 61 bytes
Experimente online!
fonte
Perl 6 ,
4841 bytesExperimente online!
Explicação:
fonte
APL (Dyalog Unicode) , SBCS de 30 bytes
Função de prefixo tácito anônimo. Imprime números em linhas separadas para stdout.
Experimente online!
{
}∘1
⍺=⍵
⍺
⋄
outro:⎕←⍵
⍺-
⍵,
10⍟
⌊
andar aqueles⌊/
mínimo daqueles10*
dez elevado ao poder desse⍵+
⍺∇
fonte
05AB1E , 15 bytes
Porto da (primeira) resposta Haskell de @PaulMutser , por isso não deixe de votar nele !!
Experimente online ou verifique todos os casos de teste .
Emite os números delimitados por nova linha.
Se fosse uma lista, eu teria que adicionar 3 bytes:
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte
Geléia , 19 bytes
Experimente online!
fonte
Wolfram Language (Mathematica) , 51 bytes
Experimente online!
fonte
Lote, 131 bytes
Recebe a entrada como um parâmetro da linha de comando e gera a lista de números para STDOUT. Explicação:
Comece com
n=1
ei=1
representando a potência de 10.Multiplique
i
por 10 sen
tiver atingido a próxima potência de 10.Emita o valor atual de
n
.Repita enquanto
i
pode ser adicionadon
sem exceder a entrada.Restaure o valor anterior
n
e dividai
por 10.Se
i
não for zero, em seguida, tente adicionari
an
novamente.fonte
R ,
6765 bytes-2 bytes graças a Giuseppe
Bem simples. É preciso um conjunto de potências de 10 além do que seria necessário em ordem inversa
i
.(Eu preferiria usar em
i=10^rev(0:log10(k))
vez de,i=10^(k:0)
pois o último é computacionalmente ineficiente, mas o golfe é o golfe!).Então, em um loop while, aplica as condições
i
e pega o primeiro (ou seja, o maior); atualizaçõesn
e anexa à saídaExperimente online!
fonte
T
vez den
; deve ser 2, mas não acho queTRUE
seja uma saída aceitávelk=1
, então definimoso=+T
. Tente!o=1
e obter esse segundo byte.Gelatina , 12 bytes
Experimente online!
fonte
Pip , 27 bytes
Experimente online!
No pseudocódigo:
Estou bastante satisfeito com os truques de golfe que pude aplicar para encurtar esse algoritmo. Ao inicializar, atualizar e imprimir itens no cabeçalho do loop, eu pude evitar a necessidade de chaves para o corpo do loop. Provavelmente existe um algoritmo de golfe.
fonte
Japonês , 18 bytes
Tente
fonte
C # (compilador interativo do Visual C #) ,
123122 bytesExperimente online!
fonte
Prolog (SWI) , 142 bytes
Experimente online!
Explicação que vem amanhã ou algo assim
fonte