Eu absolutamente odeio o dígito 1
. Então, preciso da sua ajuda para converter números para as "formas apropriadas".
Os números na forma correta nunca têm dois 1
s seguidos. 101
está bem, mas 110
é horrível.
Para converter, basta pular todos os números impróprios e contar normalmente. Por exemplo...
1 -> 1
2 -> 2
...
10 -> 10
11 -> 12
12 -> 13
...
108 -> 109
109 -> 120
110 -> 121
111 -> 122
e assim por diante.
Seu programa deve pegar um número inteiro e produzi-lo na forma correta. Isso é código-golfe , então o código mais curto em bytes vence.
109 -> 120
conversão ...Respostas:
Burlesco , 10 bytes
{11 ~ [n!} FO
Versões mais antigas:
fonte
Perl 5 , 34 bytes
Looping um contador e mudar o ocasional um duplo.
Teste
fonte
Utilitários Bash + GNU, 36
fonte
1$1
é suficiente, e não$1$1
?Pitão,
1311 bytesEconomizou 2 bytes graças a @FryAmTheEggman.
Demonstração ao vivo e casos de teste.
Versão de 13 bytes
fonte
JavaScript, 53 bytes
Alternativo (usando compreensões, mesmo comprimento):
fonte
Python 2, 50
Uma função anônima que lista os números que não contêm
11
em ordem e aceita on
th. O erro de um por zero da indexação zero é cancelado com a inclusão de0
na lista.Em teoria, isso falhará em números suficientemente altos onde
f(n)>2*n
, mas isso não deve acontecer até quen
seja pelo menos10**50
.51 bytes:
Conta os números
i
até que a cota den
números sem11
seja atingida.Uma função tem o mesmo comprimento devido às correções necessárias.
fonte
Python 3 74
Ainda precisa de um pouco de golfe.
É uma força bruta agora.
fonte
Perl 5, 47 bytes
fonte
JavaScript (ES6) 41
Como uma função anônima
Nota: a maneira mais simples seria 44:
Teste a execução do trecho abaixo.
fonte
Haskell, 51 bytes
Exemplo de uso:
([x|x<-[0..],notElem('1','1')$zip=<<tail$show x]!!) 110
->121
.Como funciona:
fonte
MUMPS, 37 bytes
Bem direto. A única coisa "interessante" aqui é a construção
j'[11
-'[
é o operador "não contém", portanto isso"abc"'["ab"
é falso e"abc"'["cd"
verdadeiro. Apesar de ambos os operandos dej'[11
serem números, o MUMPS permanece imperturbável. Felizmente, auto-executará ambos os operandos em seqüências de caracteres e seguirá com sua vida. Viva!(Aliás, se você está bem com o programa nunca terminando, podemos encurtar isso para 35 bytes:
t2(i) f j=1:1 s:j'[11 k=k+1 w:k=i j
)fonte
PHP, 43 bytes
fonte
Ruby, 24 bytesMal interpretou a tarefa, retrabalhará mais tarde!
fonte
11
. Por exemplo,12
deve dar13
, não12
.