Relacionado: Programe meu forno de microondas . Inspirado em Gerar entrada de microondas preguiçosa .
O valor lento do número inteiro não negativo N é o menor dos números inteiros mais próximos de N, enquanto todos os seus dígitos são idênticos.
Retorno (por qualquer meio) o valor de um dado preguiçoso (por qualquer meio) N .
N ≤ o maior número inteiro que seu idioma representa na forma não expoente por padrão. 1000000 (Muitas soluções interessantes são perdidas devido a esse requisito muito alto.)
Casos de teste:
0 → 0
8 → 8
9 → 9
10 → 9
16 → 11
17 → 22
27 → 22
28 → 33
100 → 99
105 → 99
106 → 111
610 → 555
611 → 666
7221 → 6666
7222 → 7777
O colega em questão provou que não haverá vínculos: exceto em 11/9, 99/111 etc., sendo um mais curto que o outro, duas respostas válidas consecutivas estão sempre a uma distância ímpar, portanto, nenhum número inteiro pode ser exatamente equidistante deles.
Number.MAX_SAFE_INTEGER
porque8e16 - 1
é expresso como8e16
. Infelizmente, parece que a única maneira seria codificar o resultado máximo. +1, no entanto.Gelatina, 16 bytes
Experimente online!
Como funciona
fonte
Oracle SQL 11.2, 200 bytes
Sem golfe
fonte
Pitão - 26 bytes
Essa resposta nem sempre retorna o menor valor em um empate, mas isso não está nas especificações, portanto, aguardando esclarecimentosfixados por 3 bytes.Conjunto de Teste .
fonte
Pitão, 16 bytes
Experimente on-line: Demonstration or Test Suite
Explicação:
fonte
MATL , 25 bytes
Utiliza força bruta, por isso pode demorar um pouco para grandes números.
Experimente online!
fonte
Perl, 32
Baseado na bela solução JavaScript de Neil.
Começa a falhar às
5e15
fonte
Mathematica, 122 bytes
Função denominada x.
fonte
JavaScript (ES6), 59 bytes
Solução Recursiva (56 bytes)
Isso é um pouco mais curto, mas não funciona
n > 1111111110
porque o tamanho máximo da pilha de chamadas foi excedido, sendo tecnicamente inválido.Explicação
Repete todos os números preguiçosos até chegar ao primeiro maior que
n
, depois, compara-sen
a este e ao número anterior para determinar o resultado.fonte
Japonês , 18 bytes
Experimente online!
Baseado na técnica de Neil
Solução não concorrente :
fonte
*9+4 h /9|0
:-)05AB1E , 20 bytes
Experimente online!
fonte
Mathematica, 56 bytes
Função pura com o primeiro argumento
#
, funciona para entradas até10^6
.Para um número inteiro não negativo
n
e um dígitod
,10^n-1 = 99...9
(9
repetidasn
vezes), assimd(10^n-1)/9 = dd...d
(d
repetidasn
vezes). Cria umTable
de valores para0 <= n <= 6
e0 <= d <= 9
, em seguida, achata a tabela, encontra a lista de elementosNearest
para#
e leva oMin
.Acredito que esta versão funcionará para números inteiros arbitrariamente grandes:
fonte