Escriba el código más corto posible que devuelva verdadero si los dos valores enteros dados son iguales o su suma o diferencia absoluta es 5.
Ejemplos de casos de prueba:
4 1 => True
10 10 => True
1 3 => False
6 2 => False
1 6 => True
-256 -251 => True
6 1 => True
-5 5 => False
Lo más corto que se me ocurrió en python2 es de 56 caracteres:
x=input();y=input();print all([x-y,x+y-5,abs(x-y)-5])<1
-9, gracias @ElPedro. Toma entrada en formato x, y:
x,y=input();print all([x-y,x+y-5,abs(x-y)-5])<1
code-golf
decision-problem
Vikrant Biswas
fuente
fuente
Respuestas:
Python 2 , 30 bytes
Pruébalo en línea!
Un byte salvado por Arnauld
Tres bytes guardados por alephalpha
fuente
JavaScript (ES6), 28 bytes
Toma entrada como0 0 o 1 .
(a)(b)
. DevuelvePruébalo en línea!
fuente
Dyalog APL , 9 bytes
Pruébalo en línea!
Deletreado:
fuente
código de máquina x86, 39 bytes
Montaje
Pruébalo en línea!
fuente
J ,
1211 bytes1 byte guardado gracias a Adám
Pruébalo en línea!
Explicación
Esto es equivalente a:
Esto se puede dividir en la siguiente cadena de horquilla:
O, visualizado usando
5!:4<'f'
:Anotado:
fuente
e.
e.
fue=+.5 e.|@-,+
. ¿Quizás olvides que5e.
es una ficha no válida en J?+
lugar de+.
R , 40 bytes (o 34)
Pruébalo en línea!
Para usuarios que no son R:
-1:1*5
se expande a[-5, 0, 5]
%in%
operador toma elementos de la izquierda y verifica (en cuanto a elementos) si existen en el vector de la derechaUn puerto directo de la solución de @ ArBo tiene
3534 bytes, así que vota tu respuesta si te gusta:fuente
function(x,y)x%in%c(y--1:1*5,5-y)
function(x,y)(x-y)%in%(-1:1*5)
y bajarlo más a 24 bytes bajando la notación de función parascan()
ingresar: ¡diff(scan())%in%(-1:1*5)
Pruébelo en línea! . Sin embargo, sigue siendo el mismo método.pryr::f
, que funciona en ambos casos. Si puede detectar adecuadamente los argumentos es algo totalmente impredecible, pero parece concretar estas dos funciones. Por ejemplo,pryr::f(x%in%c(y--1:1*5,5-y))
pruébelo en línea. . Te lleva a 36 y 29 bytes respectivamente.Python 2 ,
2931 bytesPruébalo en línea!
Como no pude leer la tarea cuidadosamente la primera vez, para solucionarlo, tuve que idear un enfoque completamente diferente, que desafortunadamente no es tan conciso.
fuente
Código de máquina 8086,
2220 bytesSin golf:
Ingrese los números en AX y BX y devuelva el indicador de cero (ZF = 1) si el resultado es verdadero. Si lo desea, también puede determinar qué condición era verdadera con lo siguiente:
Si la diferencia entre los números es 0, sabemos que son iguales. De lo contrario, si el resultado es negativo, primero niegue y luego verifique 5. Si aún no es cierto, agregue y verifique 5.
Programa de prueba de DOS para PC de muestra. Descárguelo aquí ( ESD.COM ).
Salida del programa de prueba:
fuente
Jalea , 7 bytes
Pruébalo en línea!
Cómo funciona
fuente
Python 2, 38 bytes
-2 bytes gracias a @DjMcMayhem
Pruébalo en línea!
fuente
5
s yor
sJava (JDK) , 30 bytes
Pruébalo en línea!
fuente
Wolfram Language (Mathematica) , 22 bytes
Toma entrada como
[a][b]
.Pruébalo en línea!
fuente
PowerShell ,
484440 bytesPruébalo en línea! o verificar todos los casos de prueba
Toma entrada
$a
y$b
. Comprueba si$b
es-in
el grupo ($a-5
,5-$a
5+$a
o$a
), que comprueba todas las posibles combinaciones de$a
,$b
y5
.-4 bytes gracias a mazzy.
-4 bytes gracias a KGlasier.
fuente
($a-$b)
es-$x
:)5
y$b
puede cortar un par de bytes (es decirparam($a,$b)$b-in($a-5),(5-$a),($a+5),$a
) Pruébelo aquí$a+5
para5+$a
que se lanzara correctamente al tomar la entrada de la línea de comandos, pero por lo demás es increíble. ¡Gracias!Pascal (FPC) ,
2670 bytesEditar: + variables de entrada.
Pruébalo en línea!
Pruébalo en línea!
Espero que mi respuesta esté de acuerdo con todas las reglas del código de golf. Fue divertido de todos modos.
fuente
C # (.NET Core) ,
43,48,47, 33 bytesEDITAR: Intenté usar% y aparentemente olvidé cómo%. ¡Gracias a Arnauld por señalar eso!
EDIT2: AdmBorkBork con un campo de golf de -1 byte que reorganiza los paréntesis para sentarse al lado del retorno, por lo que no se necesita espacio adicional.
EDITAR3: Gracias a dana por -14 bytes de golf por el acceso directo de retorno de una línea y curry la función (Ty Realización de la ignorancia por vincular a TIO).
C # (.NET Core) , 33 bytes
Pruébalo en línea!
fuente
C (gcc) , 33 bytes
Pruébalo en línea!
Intenté un enfoque que no vi a nadie más intentar usar. La expresión de retorno es equivalente a
a+b==5||((-6<a-b||a-b<6)&&(a-b)%5==0)
.fuente
Scala, 43 bytes
Pruébalo en línea!
fuente
||
a|
? Sé que es posible en Java, C #, Python o JavaScript, pero no estoy seguro acerca de Scala.Perl 6 , 24 bytes
-1 byte gracias a Grimy
Pruébalo en línea!
Esto usa Any Junction pero, técnicamente,
^
podría funcionar también.Explicación:
fuente
{$^a-$^b==5|0|-5|5-2*$b}
C (gcc) ,
4134 bytesPruébalo en línea!
fuente
f
vuelvea
? ¿Solo un comportamiento indefinido?05AB1E ,
1312 bytesPruébalo en línea!
Toma la entrada como una lista de enteros, guardando un byte. Gracias @ Wisław!
Respuesta alternativa de 12 bytes
Pruébalo en línea!
Este toma entrada en líneas separadas.
fuente
|
?OI`αª5¢IË~Ā
. La entrada es una lista de enteros.OIÆÄ)5QIËM
es 10.05AB1E , 10 bytes
Pruébalo en línea!
Intenté hacerlo usando operaciones solo de pila, pero fue más largo.
fuente
0
como para[5, -5]
OIÆÄ‚5QIËM
) es correcta[5,-5]
.OsÆÄ‚5åsË~
. Casi idéntico al tuyo parece. Pruébalo en línea!Rubí , 34 bytes
Evaluación en línea : gracias @ solo ASCII
fuente
.nil?
verificación para dar salida en el formato requerido.->(a,b){[a+5,a-5,5-a,a].index(b).nil?}
, esto es más largo que el actual.Tcl , 53 bytes
Pruébalo en línea!
fuente
Japt ,
1413 bytesPruébalo en línea!
fuente
Lote, 81 bytes
Toma la entrada como argumentos de línea de comando y las salidas 1 en caso de éxito, nada en caso de error. Batch no puede hacer disyunciones fácilmente, así que uso las leyes de De Morgan para convertirlo en una conjunción.
fuente
Carbón , 18 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Puerto de la solución Python 2 de @ ArBo.
fuente
Japt,
1312 bytesPruébalo o ejecuta todos los casos de prueba
fuente
[-5,5]
(debería ser falsey)Lisp común, 48 bytes
fuente
Brachylog , 8 bytes
Toma la entrada como una lista de dos números (uso
_
para negativos). Pruébalo en línea!Explicación
Prácticamente una traducción directa de la especificación:
fuente
Retina 0.8.2 , 82 bytes
Pruébalo en línea!El enlace incluye casos de prueba. Explicación: Las dos primeras líneas convierten las entradas en unarias. La línea final verifica si hay alguno de los partidos permitidos:
Pivotado por la última columna obtenemos:
fuente