Implemente una función diff que tome como entrada tres enteros x, y y z. Debería devolver si restar uno de estos números de otro da el tercero.
Test cases:
diff(5, 3, 2) yields True because 5 - 3 = 2
diff(2, 3, 5) yields True because 5 - 3 = 2
diff(2, 5, 3) yields True because 5 - 3 = 2
diff(-2, 3, 5) yields True because 3 - 5 is -2
diff(-5, -3, -2) # -5 - -2 is -3
diff(2, 3, -5) yields False
diff(10, 6, 4) yields True because 10 - 6 = 4
diff(10, 6, 3) yields False
No tiene que nombrar la función, puede implementar métodos de entrada predeterminados. Los ejemplos anteriores no son una guía estricta.
Respuestas:
Jalea ,
53 bytes¡Gracias a @ Sp3000 por guardar dos bytes!
Code, utiliza el mismo algoritmo que la gran respuesta de @ xnor :
Explicación:
Esto da
[]
como falso, y cualquier otra cosa como verdad.Pruébalo en línea!
fuente
Python 3, 21 bytes
Si dos números se suman al otro, la suma de los tres será el doble de ese otro número, por lo que la mitad de la suma será un elemento de la lista. Python 3 es necesario para evitar la división del piso, a menos que los números se den como en
3.0
lugar de3
.fuente
ES6, 31 bytes
Agregue 5 bytes si necesita nombrar la función
diff
.Editar: Guardado 2 bytes gracias a @Alex L.
fuente
||
con|
(creo)|
devuelve un booleano si y solo si ambos valores son booleanos. Entoncestrue | false == true
, pero3 | 5 == 7
. Lo mismo se aplica&&
y&
. La única diferencia entre|
y||
cuando se trata de booleanos:|
tomará el primer valor y el segundo valor y encontrará el OR de esos dos.||
tomará el primer valor; si es cierto, devuelvetrue
, de lo contrario, devuelve el segundo valor.true | false
evalúa a 1 en JavaScript (que es verdad, pero no booleano).APL,
85 bytesEste es un tren de funciones monádicas que acepta una matriz y devuelve un valor booleano (0/1 en APL). Utiliza el mismo algoritmo que la respuesta Python 3 de xnor .
Explicación:
Pruébalo en línea
¡Guardado 3 bytes gracias a Dennis!
fuente
JavaScript ES6,
383433 bytesFunción anónima muy simple, y toma prestada de la respuesta de Python. Toma la entrada
x
como una matriz; vuelvetrue
ofalse
. Bytes afeitados a Molarmanful y JrichUn programa de 38 bytes, tomando cada número como argumento:
fuente
x=>x.some(a=>a==eval(x.join`+`)/2)
, lo que ahorra 4 bytes.x=>x.some(a=>2*a==x[0]+x[1]+x[2])
parece funcionar.Oracle SQL 11.2, 49 bytes
Reescribe la solución @xnor, felicitaciones a él.
fuente
J, 6 bytes
Prueba con J.js .
Cómo funciona
fuente
DUP , 31 caracteres / 39 bytes
Try it here!
¡Mi primera presentación de DUP! Unicode es tu ostra.
Es una función anónima / lambda. Uso:
Explicación
fuente
ø
tiene el punto de código 248, por lo que es un byte si está codificado como ISO 8859-1.Java 7, 81
fuente
Perl 6,
2019 bytesTengo dos funciones iguales en el recuento de bytes, así que pondré ambas. Aprecie lo que le haga cosquillas.
Uso: asigne cualquiera de los dos a una variable desde la que pueda llamarlo.
EDITAR: Gracias @ b2gills por la reducción de bytes
fuente
{@_∋@_.sum div 2}
y{@_∋+~(@_.sum/2)}
son tanto más corto∋
hacer?Java 8 (función lambda), 29 bytes
Las soluciones de golf de código Java generalmente son cortas cuando el programa no tiene que ser un programa completamente funcional. (* tos tos * declaración de clase, método principal)
fuente
Pyth, 6 bytes
Pruébalo en línea!
Espera entrada como una lista de enteros. Emite 0 si no se puede construir un número restando los otros dos y> 0 si al menos uno puede.
Explicación:
Mismo algoritmo que la respuesta de @xnor
fuente
05AB1E , no competidor
4 bytes , no compiten por una estupidez. Código:
Usando 0 como falso y> 0 como verdadero. Utiliza la codificación CP-1252.
fuente
;
reduce a la mitad la parte superior de la pila. Pero adivina qué, nunca lo he implementado -_-.Kona 16 caracteres
Toma un vector de la pila, los suma, divide por 2 y determina si está en el vector. Devuelve 1 como verdadero y 0 como falsey.
Llamado vía
fuente
jq, 17 caracteres
(Sin embargo, otra reescritura de la respuesta de Python 3 de xnor. Los votos a favor deberían ir a esa).
Entrada: matriz de 3 enteros.
Ejecución de muestra:
Prueba en línea:
jq, 18 caracteres
(Código de 17 caracteres + opción de línea de comando de 1 carácter).
Entrada: lista de 3 enteros.
Ejecución de muestra:
fuente
MATL , 5 bytes
Usando el gran enfoque de @ xnor :
Pruébalo en línea!
Enfoque de fuerza bruta, 12 bytes :
Pruébalo en línea!
fuente
𝔼𝕊𝕄𝕚𝕟, 7 caracteres / 9 bytes
Try it here (Firefox only).
Meh Todavía estoy encontrando mejores formas. Es solo el asombroso algoritmo de @xnor.
fuente
CJam, 10
12bytes2 bytes eliminados gracias a @ MartinBüttner.
Esto muestra un número como resultado verdadero y ninguna salida como resultado falso.
Pruébalo aquí
fuente
En serio, 6 bytes
Emite 0 si es falso y un entero positivo en caso contrario
fuente
Mathematica,
2019 bytesFunciona de manera similar a la mayoría de las otras respuestas.
fuente
MemberQ[2{##},+##]&
? (y olvidó su número de bytes)Haskell, 20 bytes
Usando la solución de xnor.
fuente
(/)
no funciona para enteros y el desafío pide enteros, no estoy seguro de que esta sea realmente una solución válida.(\l->sum l/2`elem`l).map fromInteger
y que puede ser utilizado como esto:((\l->sum l/2`elem`l).map fromInteger) ([2,3,5] :: [Integer])
. Creo que lo que me confundió fue XNOR mencionar el uso de Python 3 por lo que la entrada no tiene por qué ser 3.0 en lugar de 3. pensé que el tipo de entrada no se ha especificado, sólo la forma en que fueron escritos ...sum
nielem
funcionaría, probablemente debería haber especificado que era una lista, pero como esta respuesta es literalmente lo que envió xnor (en Haskell), no pensé que fuera necesario. :)Perl, 24 + 4 = 28 bytes
Requiere
-paX
banderas para correr, impresiones1
como Verdadero y nada como Falso:-X
deshabilita todas las advertencias.fuente
$_=eval(y/ /+/r)/2~~@F
(usa las mismas opciones de línea de comandos).tr
:)-X
especificando alguna versión de Perl [5.10 .. 5.18). (Smart partido se introdujo en 5,10 y advertencias experimentales fueron introducidas en 5,18 Cualquier versión entre los dos funcionará bien con.~~
Sin-X
.)Jolf, 6 bytes
Pruébalo aquí!
Esta es la increíble solución de xnor al problema, pero en Jolf.
fuente
Pilones , 8
Otra implementación más del algoritmo de xnor.
Cómo funciona:
fuente
SpecBAS - 36 bytes
Utiliza la fórmula xnors
salidas 1 si es verdadero y 0 si es falso
fuente
05AB1E ,
65 bytes-1 byte creando un puerto del algoritmo Python 3 de @xnor .
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
Estoy bastante seguro de que
м_O
se puede acortar, pero no estoy seguro de qué comando (s) tengo que usar para ello.fuente
R , 23 bytes
Pruébalo en línea!
El descarado puerto de la respuesta de xnor .
fuente