Sua tarefa é pegar um número positivo como entrada, n , e gerar o comprimento da representação mais longa de dígitos em n em qualquer base. Por exemplo, 7 pode ser representado como qualquer um dos seguintes
111_2
21_3
13_4
12_5
11_6
10_7
7_8
Como os dígitos repetidos são 111_2
e 11_6
, 111_2
é maior, nossa resposta é 3.
Esta é uma questão de código-golfe, para que as respostas sejam pontuadas em bytes, com menos bytes sendo melhores.
Casos de teste
1 -> 1
2 -> 1
3 -> 2
4 -> 2
5 -> 2
6 -> 2
7 -> 3
8 -> 2
9 -> 2
10 -> 2
11 -> 2
26 -> 3
63 -> 6
1023-> 10
Implementação de amostra
Aqui está uma implementação no Haskell que pode ser usada para gerar mais casos de teste.
f 0 y=[]
f x y=f(div x y)y++[mod x y]
s x=all(==x!!0)x
g x=maximum$map(length.f x)$filter(s.f x)[2..x+1]
code-golf
base-conversion
Post Rock Garf Hunter
fonte
fonte
base > 1
?222
na base 3.Respostas:
Geléia , 9 bytes
Um link monádico que aceita e retorna números
Experimente online! ou consulte uma suíte de testes (entradas de 1 a 32 inclusive).
Quão?
... ou talvez eu devesse ter feito:
Para o
Lo1
z.fonte
ZL
é menor do queL€Ṁ
...JavaScript (ES6), 62 bytes
fonte
Haskell ,
868179 bytes2 bytes salvos graças a Laikoni
Experimente online!
Como isso diminuiu um pouco, aqui está minha abordagem. É uma versão em golf do código de amostra que fiz para a pergunta. Eu acho que definitivamente pode ser mais curto. Eu apenas pensei em colocá-lo lá fora.
fonte
length.head.filter(all=<<(==).head).(<$>[2..]).(!)
.Casca ,
1311 bytes-2 bytes graças ao zgarb
Experimente online!
fonte
mm
pode serM
eṠoΛ=←
pode serȯ¬tu
. Ainda não é um built-in para verificar que todos os elementos de uma lista são iguais ...ΓoΛ=
também funciona como quatro bytesM
deve estar nos documentos, já que já há algum tempo. Eu deveria consertar isso. Mas é basicamente o dual deṀ
.Mathematica, 71 bytes
Experimente online!
fonte
05AB1E , 8 bytes
Experimente online!
-1 graças a kalsowerus .
fonte
L>вʒË}нg
para 8 bytesBraquilog , 12 bytes
Experimente online!
fonte
Python 3 ,
9287 bytes5 bytes graças a Halvard Hummel.
Experimente online!
fonte
Mathematica, 58 bytes
Lança um erro (porque a base-1 não é uma base válida), mas é seguro ignorar.
Obviamente, não há problema em assumir o comprimento do primeiro repdigit (
FirstCase
), pois os números nas bases inferiores não podem ser mais curtos do que nas bases superiores.fonte
CJam (17 bytes)
Conjunto de testes online . Este é um bloco anônimo (função) que pega um número inteiro na pilha e deixa um número inteiro na pilha.
Funciona com força bruta, usando
3
como base de fallback para lidar com casos especiais (entrada1
ou2
).fonte
Perl 6 , 49 bytes
Experimente online!
Explicação
O método polymod é uma generalização do Python
divmod
: ele executa divisão inteira repetida usando uma determinada lista de divisores e retorna os restantes intermediários.Pode ser usado para decompor uma quantidade em várias unidades:
Ao passar uma sequência lenta como a lista de divisores,
polymod
pára quando o quociente chega a zero. Assim, dando-lhe uma repetição infinita do mesmo número, decompõe a entrada em dígitos dessa base:Eu uso isso aqui porque permite bases arbitrariamente altas, em contraste com o
.base
método baseado em string, que suporta apenas a base 36.fonte
[]
tornopolymod
mudando$_
para@_
TI-BASIC, 37 bytes
Solicita N, retorna a saída em Ans.
Explicação
Como uma visão geral, para cada possível base B em seqüência, ele primeiro calcula o número de dígitos de N quando representado na base B, depois verifica se N é divisível pelo valor representado pelo mesmo número de 1 dígito na base B.
fonte
Pitão , 13 bytes
Experimente online!
fonte
Java 8, 111 bytes
A contagem de bytes de 111 também é um dígito repetitivo. ;)
Explicação:
Experimente aqui.
fonte
Java 8, 79 bytes
Um lambda de
Integer
paraInteger
.Lambda ungolfed
Verifica as radições em ordem crescente de 2 até que uma raiz de dígitos repetidos seja encontrada. Baseia-se no fato de que a menor raiz desse tipo corresponderá a uma representação com mais dígitos.
m
é uma cópia da entrada,b
é a raiz el
é o número de dígitos verificados (e, finalmente, o comprimento dab
representação da raiz ).fonte
Burlesco, 24 bytes
(veja a solução correta abaixo)
Veja em ação .
Pelo menos se minha intuição estiver certa de que uma representação de dígito repetitivo sempre será mais longa? Caso contrário, uhm ...
fonte