Implemente uma função diff que tome como entrada três números inteiros x, ye z. Ele deve retornar se subtrair um desses números de outro fornece o terceiro.
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
Você não precisa nomear a função; pode implementar métodos de entrada padrão; os exemplos acima não são uma diretriz estrita.
code-golf
arithmetic
Mir
fonte
fonte
Respostas:
Geléia ,
53 bytesObrigado ao @ Sp3000 por salvar dois bytes!
Code, usa o mesmo algoritmo da ótima resposta do @ xnor :
Explicação:
Isso dá
[]
como falso, e qualquer outra coisa como verdade.Experimente online!
fonte
Python 3, 21 bytes
Se dois números forem adicionados ao outro, a soma dos três será o dobro desse outro número; portanto, metade da soma será um elemento da lista. O Python 3 é necessário para evitar a divisão do piso, a menos que os números sejam dados como
3.0
antes3
.fonte
ES6, 31 bytes
Adicione 5 bytes se precisar nomear a função
diff
.Editar: salvou 2 bytes graças a @Alex L.
fonte
||
com|
(eu acho)|
retorna um booleano se e somente se ambos os valores forem booleanos. Entãotrue | false == true
, mas3 | 5 == 7
. O mesmo se aplica&&
e&
. A única diferença entre|
e||
quando se trata de booleanos: pegará|
o primeiro valor e o segundo valor e encontrará o OR desses dois.||
receberá o primeiro valor; se for verdade, retornetrue
, caso contrário, retorne o segundo valor.true | false
é avaliado como 1 em JavaScript (que é verdadeiro, mas não booleano).APL,
85 bytesEste é um trem de função monádica que aceita uma matriz e retorna um booleano (0/1 em APL). Ele usa o mesmo algoritmo da resposta Python 3 do xnor .
Explicação:
Experimente online
Economizou 3 bytes graças a Dennis!
fonte
JavaScript ES6,
383433 bytesFunção anônima muito simples e empresta a resposta do Python. Recebe entrada
x
como uma matriz; retornatrue
oufalse
. Bytes raspados para Molarmanful e jrichUm programa de 38 bytes, considerando cada número como argumento:
fonte
x=>x.some(a=>a==eval(x.join`+`)/2)
, que economiza 4 bytes.x=>x.some(a=>2*a==x[0]+x[1]+x[2])
parece funcionar.Oracle SQL 11.2, 49 bytes
Reescreva a solução @xnor, parabéns a ele.
fonte
J, 6 bytes
Experimente-o com J.js .
Como funciona
fonte
DUP , 31 caracteres / 39 bytes
Try it here!
Minha primeira submissão ao DUP! Unicode é sua ostra.
É uma função anônima / lambda. Uso:
Explicação
fonte
ø
possui o ponto de código 248, portanto, é um byte se codificado como ISO 8859-1.Java 7, 81
fonte
Perl 6,
2019 bytesEu tenho duas funções iguais na contagem de bytes, então eu vou colocar as duas. Aprecie o que lhe agrada.
Uso: atribua um a uma variável a partir da qual você pode chamá-lo.
EDIT: Obrigado @ b2gills pela redução de bytes
fonte
{@_∋@_.sum div 2}
e{@_∋+~(@_.sum/2)}
são ambos curto∋
faz?Java 8 (função lambda), 29 bytes
As soluções de golfe em código Java geralmente são curtas quando o programa não precisa ser um programa totalmente funcional. (* tosse * declaração de classe, método principal)
fonte
Pitão, 6 bytes
Experimente online!
Espera entrada como uma lista de números inteiros. Produz 0 se nenhum número puder ser construído subtraindo os outros dois e> 0 se pelo menos um puder.
Explicação:
Mesmo algoritmo que a resposta de @xnor
fonte
05AB1E , não concorrente
4 bytes , não concorrentes por causa de uma coisa estúpida. Código:
Usando 0 como falso e> 0 como verdade. Usa a codificação CP-1252.
fonte
;
divide pela metade a parte superior da pilha. Mas adivinhem, eu nunca o implementei -_-.Kona 16 chars
Pega um vetor da pilha, soma-os, divide por 2 e determina se está no vetor. Retorna 1 como verdade e 0 como falsey.
Chamado via
fonte
jq, 17 caracteres
(No entanto, outro reescrever xnor 's Python 3 resposta . Upvotes deve ir para aquele.)
Entrada: matriz de 3 números inteiros.
Exemplo de execução:
Teste on-line:
jq, 18 caracteres
(Código de 17 caracteres + opção de linha de comando de 1 caractere.)
Entrada: lista de 3 números inteiros.
Exemplo de execução:
fonte
MATL , 5 bytes
Usando a ótima abordagem do @ xnor :
Experimente online!
Abordagem de força bruta, 12 bytes :
Experimente online!
fonte
, 7 caracteres / 9 bytes
Try it here (Firefox only).
Meh. Ainda estou encontrando maneiras melhores. É apenas o incrível algoritmo do @ xnor.
fonte
CJam, 10
12bytes2 bytes removidos graças a @ MartinBüttner.
Isso exibe um número como resultado confiável e nenhuma saída como resultado falso.
Experimente aqui
fonte
Sério, 6 bytes
Emite 0 se falso e um número inteiro positivo em contrário.
fonte
Mathematica,
2019 bytesFunciona de maneira semelhante à maioria das outras respostas.
fonte
MemberQ[2{##},+##]&
? (e tenha esquecido da sua contagem de bytes)Haskell, 20 bytes
Usando a solução do xnor.
fonte
(/)
não funciona para números inteiros e o desafio pede números inteiros, não tenho certeza se essa é realmente uma solução válida.(\l->sum l/2`elem`l).map fromInteger
e ele pode ser usado como este:((\l->sum l/2`elem`l).map fromInteger) ([2,3,5] :: [Integer])
. Eu acho que o que me impressionou foi xnor mencionar o uso do python 3 para que a entrada não tivesse que ser 3.0 em vez de 3. Pensei que o tipo de entrada não fosse especificado, do jeito que foram escritos ...sum
nemelem
funcionaria, provavelmente eu deveria ter especificado que era uma lista, mas como essa resposta é literalmente o que o xnor enviou (em Haskell), não achei que fosse necessário. :)Perl, 24 + 4 = 28 bytes
Requer
-paX
sinalizadores para executar, imprime1
como Verdadeiro e nada como Falso:-X
desativa todos os avisos.fonte
$_=eval(y/ /+/r)/2~~@F
(usa as mesmas opções de linha de comando).tr
:)-X
fora especificando uma versão do Perl [5.10 .. 5.18). (Smart jogo foi introduzido em 5,10 e advertências experimentais foram introduzidos em 5,18 Qualquer versão entre os dois vai funcionar bem com.~~
Sem-X
.)Jolf, 6 bytes
Experimente aqui!
Esta é a incrível solução do xnor para o problema, mas em Jolf.
fonte
Postes , 8
Mais uma implementação do algoritmo do xnor.
Como funciona:
fonte
SpecBAS - 36 bytes
Usa a fórmula xnors
gera 1 se verdadeiro e 0 se falso
fonte
05AB1E ,
65 bytes-1 byte, criando uma porta do algoritmo Python 3 do @xnor .
Experimente online ou verifique todos os casos de teste .
Explicação:
Tenho certeza de que
м_O
pode ser reduzido, mas não tenho certeza de quais comandos devo usar para isso.fonte
R , 23 bytes
Experimente online!
Porta vergonhosa da resposta do xnor .
fonte