Tarefa
Escreva um programa que receberá (como entrada) um número inteiro positivo. Ele será contado a partir de 0
, acrescentando cada número inteiro a String
, continuando apenas se o comprimento do String
for menor que o valor da entrada.
Um número inteiro serializado é definido como o número inteiro completo com o valor máximo pertencente a String
. Por "totalmente formado", o número inteiro não deve ter dígitos ausentes (o que ocorreria se a restrição de comprimento do String
fosse atendida).
A saída do programa deve ser o número inteiro serializado para sua respectiva entrada positiva.
Regras
- É código de golfe, então a resposta mais curta (em bytes) vence!
- A entrada sempre será positiva.
- A saída deve ser um número inteiro na base 10 (decimal).
- O programa deve ser indexado em 0.
Exemplo de entrada | Resultado
5 | 4 (0 1 2 3 4 - Length of 5)
11 | 9 (0 1 2 3 4 5 6 7 8 9 1 - Length of 11)
12 | 10 (0 1 2 3 4 5 6 7 8 9 10 - Length of 12)
1024 | 377 (0 1 2 3 4 5 6 7 8 ... - Length of 1024)
Notas)
- Se você tiver alguma dúvida (ou desejar que eu forneça mais exemplos), por favor, comente!
- Inspiração: /programming/45034478/how-do-i-calculate-the-maximum-serialized-integers-in-1024-length-limit
11
N-1
dígitos da constante Champernowne , com um0
prefixo?Respostas:
JavaScript (ES6),
4037 bytesEditar: salvou 3 bytes com alguma ajuda do @Arnauld.
fonte
05AB1E ,
107 bytesIdéia para usar prefixos da resposta de Jonathan's Jelly
Experimente online!
Explicação
fonte
Python 2 , 55 bytes
Porta lambda recursiva da resposta de @ officialaimm .
Experimente online!
fonte
Japonês , 13 bytes
Teste online!
Explicação
fonte
PHP , 56 bytes
Experimente online!
fonte
Haskell ,
555350 bytesExperimente online!
O uso é
(1024#"") 0
fonte
Python 2 ,
60 5958 bytesExperimente online!
fonte
Geléia ,
11 109 bytesUm link monádico que pega um número inteiro positivo e retorna um número inteiro não negativo.
Experimente online!
Quão?
editando ...
fonte
Pitão,
87 bytesExperimente online. Suíte de teste.
fonte
< num seq
também foi muito útil.Perl 6 , 36 bytes
Experimente online!
0 ...^ {...}
é a sequência de números de zero a um menor que o número para o qual o bloco de código entre chaves retorna verdadeiro. (...
sem o sinal de intercalação retornaria o primeiro número para o qual o bloco retornou verdadeiro.)[~] 0 .. $^a
é a concatenação de números0
até o número atual$^a
(o parâmetro para o bloco de código)..comb
é uma lista de todos os caracteres (dígitos) na sequência concatenada. Interpretado como um número, ele avalia o comprimento da sequência..chars
seria mais natural usar aqui, pois ele avalia diretamente o comprimento da string, mas o nome é um caractere mais longo.$_
é o argumento para a função de nível superior.[*-1]
seleciona o último elemento da lista gerada.fonte
QBIC , 34 bytes
Explicação
fonte
Python 2 , 44 bytes
Experimente online!
fonte
J, 26 bytes
fonte
R , 43 bytes
Experimente online!
fonte
WendyScript , 42 bytes
Experimente online!
Ungolfed:
fonte
PHP, 41 bytes
Experimente online .
fonte
Java 8, 64 bytes
Ou pequenas alternativas com a mesma contagem de bytes:
Explicação:
Experimente aqui.
fonte
Ruby , 39 bytes
Experimente online!
fonte
Ruby, 44 bytes
Inspirado na resposta JAVA de Kevin Cruijssen. -4 bytes graças a G B.
fonte
Perl 5 , 31 + 1 (
-p
) = 32 bytesExperimente online!
fonte