Absolutamente odio el dígito 1
. Por lo tanto, necesito su ayuda para convertir los números a sus "formas adecuadas".
Los números en forma adecuada nunca tienen dos 1
s seguidos. 101
Está bien, pero 110
es horrible.
Para convertir, simplemente omita todos los números impropios y cuente normalmente. Por ejemplo...
1 -> 1
2 -> 2
...
10 -> 10
11 -> 12
12 -> 13
...
108 -> 109
109 -> 120
110 -> 121
111 -> 122
y así.
Su programa debe tomar un número entero y generarlo en forma adecuada. Este es el código de golf , por lo que gana el código más corto en bytes.
109 -> 120
conversión ...Respuestas:
Burlesque , 10 bytes
{11 ~ [n!} FO
Versiones anteriores:
fuente
Perl 5 , 34 bytes
Colocando un contador y cambiando el doble de vez en cuando.
Prueba
fuente
Bash + GNU utils, 36
fuente
1$1
suficiente, en lugar de$1$1
?Pyth,
1311 bytesGuardado 2 bytes gracias a @FryAmTheEggman.
Demostración en vivo y casos de prueba.
Versión de 13 bytes
fuente
JavaScript, 53 bytes
Alternativo (usando comprensiones, misma longitud):
fuente
Pitón 2, 50
Una función anónima que enumera los números que no contienen
11
en orden, y toma eln
número uno. El error off-by-one de indexación cero se cancela con la inclusión de0
en la lista.En teoría, esto fallará para números suficientemente altos donde
f(n)>2*n
, pero esto no debería suceder hasta quen
sea al menos10**50
.51 bytes:
Cuenta los números
i
hasta que se cumpla la cuota den
números sin11
.Una función tiene la misma longitud debido a las correcciones off-by-one necesarias.
fuente
Python 3 74
Todavía necesito un poco de golf.
Es bastante fuerza bruta en este momento.
fuente
Perl 5, 47 bytes
fuente
JavaScript (ES6) 41
Como una función anónima
Nota: la forma más simple sería 44:
Prueba a ejecutar el fragmento a continuación.
fuente
Haskell, 51 bytes
Ejemplo de uso:
([x|x<-[0..],notElem('1','1')$zip=<<tail$show x]!!) 110
->121
.Cómo funciona:
fuente
MUMPS, 37 bytes
Muy claro. Lo único "interesante" aquí es la construcción
j'[11
:'[
es el operador "no contiene", por lo que"abc"'["ab"
es falso y"abc"'["cd"
verdadero. A pesar de que ambos operandosj'[11
son números, MUMPS permanece imperturbable. Felizmente autocoerce ambos operandos a cadenas y continuará con su vida. ¡Hurra!(Por cierto, si estás de acuerdo con el programa nunca terminar, podemos acortar este a 35 bytes:
t2(i) f j=1:1 s:j'[11 k=k+1 w:k=i j
)fuente
PHP, 43 bytes
fuente
Rubí, 24 bytesMal interpretado la tarea, volverá a trabajar más tarde!
fuente
11
. Por ejemplo,12
debería dar13
, no12
.