Escriba un programa o función que tome un entero positivo. Puede suponer que la entrada es válida y puede tomarla como una cadena. Si el número es cualquiera de
123
234
345
456
567
678
789
luego genera un valor verdadero . De lo contrario, genera un valor falso . Por ejemplo, las entradas
1
2
3
12
122
124
132
321
457
777
890
900
1011
1230
1234
todo debe dar como resultado una salida falsa. (La entrada no tendrá ceros a la izquierda, por lo que no debe preocuparse por cosas como 012
).
El código más corto en bytes gana.
code-golf
number
decision-problem
integer
Pasatiempos de Calvin
fuente
fuente
012
?012
sería falso, pero puede suponer que no es una entrada.Respuestas:
Python, 24 bytes
Una función anónima que genera 0 o 1. Crea la lista
[123, 234, 345, 456, 567, 678, 789]
y cuenta cuántas veces aparece la entrada.fuente
Python, 24 bytes
Solo muchas condiciones encadenando.
fuente
lambda
, ni siquiera habría adivinado que era Python. Eso es horribleHaskell, 22 bytes
Una función anónima. Genera la lista espaciada uniformemente
[123, 234, 345, 456, 567, 678, 789]
y comprueba si la entrada es un elemento.fuente
Brachylog , 9 bytes
Pruébalo en línea! o Verificar todos los casos de prueba.
Créditos a Dennis por el algoritmo .
En inglés, "(demuestre que) el primer dígito de la entrada, concatenado consigo mismo dos veces, agregue 12, sigue siendo la entrada".
fuente
Python 2, 25 bytes
Pruébalo en Ideone .
fuente
Brain-Flak 76 + 3 = 79 bytes
Esta respuesta es un golf de esta respuesta. En realidad no sé cómo funciona mi respuesta, pero DJMcMayhem da una buena explicación en su respuesta original y mi respuesta es una modificación de la suya.
Se ejecuta con el indicador -a ascii que agrega 3 bytes.
Explicación (de algún tipo)
Comenzando con la solución de trabajo original:
Ejecuté esto a través de un algoritmo de golf simple que escribí y obtengo:
Desde aquí veo la sección que
<({}[()()()])>{}
esencialmente se multiplica por uno, lo que hace que sea igual{}[()()()]
reducir todo el código a:Por último, los negativos se pueden combinar:
fuente
Brainfuck, 32 bytes
Pruébalo en línea!
Créditos a Lynn por el núcleo del algoritmo.
fuente
Jalea , 6 bytes
Pruébalo en línea! o verificar todos los casos de prueba .
Cómo funciona
fuente
ast.literal_eval
respecta,012
no representa un número entero .05AB1E , 5 bytes
Explicación
Pruébalo en línea
fuente
2Å1
lugar deXX,
, solo por el heck de menos comandos (4 en lugar de 5).Å
se puede escribir en mi teclado (en lugar de‚
) lo cual es un beneficio :)‚
(no el,
que usé) no tiene una secuencia de teclas compuestas también, mientrasÅ
estáoA
en un teclado en-US.MATL , 8 bytes
Pruébalo en línea!
Esto imprimirá
1 1
para una entrada veraz y una matriz con un0
valor falso, ya que eso es falso en MATL.Explicación:
fuente
d1=Ep4=
(no lo he probado a fondo)dTTX=
por 5 bytesT
T
es el literaltrue
yF
esfalse
. VecinosT
yF
unidos, asíTT
es[true true]
, lo que para estos propósitos es equivalente a[1 1]
. Vea la sección 4.3 de la especificaciónJava 7, 46 bytes
Después de probar varias cosas con Leaky Nun en el chat, esta parece ser la más corta. A veces solo tienes que hacer las cosas de la manera más sencilla: /
Explicación:
fuente
Perl 6 ,
35 29 24 2119 bytesExplicación:
Uso:
fuente
Retina , 26
Salidas 1 para la verdad y 0 para falsey.
Pruébelo en línea (se agregó la primera línea para permitir la ejecución de múltiples casos de prueba)
fuente
Ruby,
323025 + 2 = 27 bytes+2 bytes para
-nl
banderas.Toma entrada en STDIN e imprime
true
ofalse
.Véalo en repl.it: https://repl.it/DBn2/2 (Haga clic en ▶ ️ y luego escriba input en la consola a continuación).
fuente
-a
hace unsplit
, nochop
? Además, ¿qué hace el&
? Estoy usando un Ruby más antiguo que arroja un error. De todos modos, funciona perfectamente a 26 bytes sin él.-l
, no-a
.&.
es el operador de "navegación segura", agregado en Ruby 2.3. Sin él, las entradas como19
, que no son subcadenas si"123456789"
, generarán un NoMethodError.Brain-Flak , 99 bytes
Pruébalo en línea!
Esto es 98 bytes de código
+1
para la-a
bandera.Esto imprime
1
para la verdad, y una0
o ninguna (que es equivalente a 0) para la falsedadfuente
...)({}
pero varían. Si presiona y explota sin usar el valor, puede condensarlo en una sola cosa. Puedo vincularlo a una versión de su código con todos estos juegos de golf si lo desea.Brain-Flak , 114 bytes
Pruébalo en línea!
Versión correcta (en el espíritu de la pregunta): toma el entero como entrada, salida 0 para falsey y 1 para verdadero.
Esto no es una pila limpia.
Algoritmo
Deje que la entrada sea
n
.La salida es veraz iff
(n-123)(n-234)(n-345)(n-456)(n-567)(n-678)(n-789)=0
.Calculé esos siete números restando primero 12 y luego restando 111 7 veces, y luego calculé el NOT lógico doble de esos siete números y los sumé.
Para resultados verdaderos, la suma es 6; para los resultados de falsey, la suma es 7.
Luego, resto la suma de 7 y envío la respuesta.
fuente
R,
3022 bytesNo particularmente emocionante; compruebe si la entrada está en la secuencia dada por 12 + 111k, donde k es cada uno de 1 a 7. Tenga en cuenta que
:
precede a*
la multiplicación después de que se genera la secuencia.fuente
C # (compilador interactivo de Visual C #) ,
41 3023 bytesPrimera presentación de código de golf, sé amable :)
Pruébalo en línea!
fuente
return
palabra clave: 30 bytesBrainfuck, 43 bytes
Bah, no soy bueno en esto. Salidas
\x01
Si la salida es una de las cadenas123
,234
, ...,789
; salidas de lo\x00
contrario.(Pero vencí a Java 7 ...)
Pruébalo en línea!
fuente
[>>]<
? ¿No podría ser eso>
?JavaScript ES6, 26 bytes
n=>1>(n-12)%111&n>99&n<790
Esto aprovecha el hecho de que estoy usando operadores lógicos de bits en lo que son esencialmente booleanos (¡que están basados en bits!)
Gracias a Titus por salvar 2.
fuente
(n-12)
yn>99
Excel -
62573531 bytesBasado en la respuesta de Anastasiya-Romanova, pero devolviendo los
TRUE/FALSE
valores de Excel .Además, podemos llegar a
ya que ambos
RIGHT
yLEFT
devuelve un solo carácter por defecto.Y, inspirado en algunas de las soluciones de Python:
Gracias a Neil por 4 bytes más ...
fuente
N<900
ahorra un byte, en cuyo caso también puede usarlo enN>99
lugar deLEN(N)=3
.=REPT(LEFT(N),3)+12=N
dondeN
está el nombre de la celda de referencia.Brachylog (2), 7 bytes
Pruébalo en línea!
Explicación
Como programa completo, obtenemos un verdadero retorno si todas las afirmaciones se mantienen, un falso retorno si alguno falla.
fuente
CJam,
139 bytesPruébalo en línea!
Explicación
fuente
2345
Excel - 104 bytes
Explicación:
La sintaxis para la fórmula IF en Excel es:
Si la longitud de la entrada
N
, donde es un nombre de la celda de referencia, es menor que 3, entonces devolverá Falsy . De lo contrario, si la longitud de entradaN
es 3 y la diferencia entre el segundo dígito y el primer dígito y la diferencia entre el tercer dígito y el segundo dígito son iguales a 1, entonces devolverá Verdad .fuente
=REPT(LEFT(N),3)+12=N
dondeN
está el nombre de la celda de referencia.Dyalog APL , 10 bytes
Toma un argumento de cadena.
1 1≡
Es {1, 1} idéntico a¯2-/
la diferencia inversa en pares de⍎¨
cada personaje tomado como un número?TryAPL en línea! (
⍎
ha sido emuladoe
por razones de seguridad).fuente
Perl, 18 bytes
Incluye +1 para
-p
Ejecutar con la entrada en STDIN
123.pl
:fuente
PHP, 31 bytes
Compruebe si el primer dígito de (número menos 12) es múltiplo de 111
fuente
PowerShell v3 +, 24 bytes
Utiliza el mismo truco "múltiplo de 111 más 12" que otras respuestas, pero va en la otra dirección. Toma entrada
$args[0]
, resta12
, divide111
y comprueba si ese es-in
el rango1..7
. Emite un valor booleano verdadero / falso. Requiere v3 + para-in
operador.Casos de prueba
fuente
Código de máquina ARM, 18 bytes
Hex dump (little endian):
Esta es una función que toma un par de punteros de longitud para la cadena. La salida es de estilo bash, emite 0 para verdadero y un valor distinto de cero para falso. En C, la función se declararía int oneTwoThree (size_t length, char * string). La codificación de instrucciones es thumb-2, que tiene instrucciones de 2 y 4 bytes. Probado en una Raspberry Pi 3.
Asamblea sin golf:
Script de prueba (también ensamblado):
fuente
JavaScript (ES6), 34 bytes
Y una opción más en JS. Toma la entrada como una cadena y las salidas
0
parafalse
y1
paratrue
.Vea mis otras soluciones aquí y aquí
Intentalo
fuente