Escreva o código mais curto possível que retornará true se os dois valores inteiros forem iguais ou se a soma ou diferença absoluta for 5.
Exemplos de casos de teste:
4 1 => True
10 10 => True
1 3 => False
6 2 => False
1 6 => True
-256 -251 => True
6 1 => True
-5 5 => False
O menor que eu pude criar no python2 tem 56 caracteres:
x=input();y=input();print all([x-y,x+y-5,abs(x-y)-5])<1
-9, obrigado @ElPedro. É necessário entrada no formato x, y:
x,y=input();print all([x-y,x+y-5,abs(x-y)-5])<1
code-golf
decision-problem
Vikrant Biswas
fonte
fonte
Respostas:
Python 2 , 30 bytes
Experimente online!
Um byte salvo por Arnauld
Três bytes salvos por alephalpha
fonte
JavaScript (ES6), 28 bytes
Toma entrada como0 ou 1 .
(a)(b)
. RetornaExperimente online!
fonte
Dyalog APL , 9 bytes
Experimente online!
Soletrado:
fonte
código de máquina x86, 39 bytes
Montagem
Experimente online!
fonte
J ,
1211 bytes1 byte economizado graças a Adám
Experimente online!
Explicação
Isso é equivalente a:
Isso pode ser dividido na seguinte cadeia de garfos:
Ou visualizado usando
5!:4<'f'
:Anotado:
fonte
e.
e.
foi=+.5 e.|@-,+
. Talvez você esqueça que5e.
é um token inválido no J?+
vez de+.
R , 40 bytes (ou 34)
Experimente online!
Para usuários não-R:
-1:1*5
expande para[-5, 0, 5]
%in%
operador pega elementos da esquerda e verifica (em termos de elementos) se eles existem no vetor à direitaUma porta direta da solução do @ ArBo possui
3534 bytes, então vote com mais frequência que responder se quiser:fonte
function(x,y)x%in%c(y--1:1*5,5-y)
function(x,y)(x-y)%in%(-1:1*5)
e depois para 24 bytes, largando a notação de função nascan()
entrada:diff(scan())%in%(-1:1*5)
Experimente online! . Ainda é muito o mesmo método.pryr::f
, o que acontece nos dois casos. Se ele pode detectar adequadamente os argumentos é inteiramente um tanto imprevisível, mas parece pregar essas duas funções. Por exemplo,pryr::f(x%in%c(y--1:1*5,5-y))
experimente online! . Leva você a 36 e 29 bytes, respectivamente.Python 2 ,
2931 bytesExperimente online!
Como não consegui ler a tarefa cuidadosamente da primeira vez, para corrigi-la, tive que criar uma abordagem completamente diferente, que infelizmente não é tão concisa.
fonte
Código de máquina 8086,
2220 bytesUngolfed:
Digite os números no AX e no BX e retorne a flag zero (ZF = 1) se o resultado for verdadeiro. Se desejar, você também pode determinar qual condição era verdadeira com o seguinte:
Se a diferença entre os números for 0, sabemos que eles são iguais. Caso contrário, se o resultado for negativo, primeiro negue-o e verifique se 5. Se ainda não for verdadeiro, adicione e verifique 5.
Exemplo de programa de teste para PC DOS. Faça o download aqui ( ESD.COM ).
Saída do programa de teste:
fonte
Geléia , 7 bytes
Experimente online!
Como funciona
fonte
Python 2, 38 bytes
-2 bytes graças a @DjMcMayhem
Experimente online!
fonte
5
eor
Java (JDK) , 30 bytes
Experimente online!
fonte
Wolfram Language (Mathematica) , 22 bytes
Toma entrada como
[a][b]
.Experimente online!
fonte
PowerShell ,
484440 bytesExperimente online! ou Verifique todos os casos de teste
Pega entrada
$a
e$b
. Verifica se$b
é-in
o grupo ($a-5
,5-$a
5+$a
, ou$a
), o qual verifica todas as combinações possíveis de$a
,$b
e5
.-4 bytes graças ao mazzy.
-4 bytes graças ao KGlasier.
fonte
($a-$b)
é-$x
:)5
e$b
em torno de você pode cortar um par de bytes (ou sejaparam($a,$b)$b-in($a-5),(5-$a),($a+5),$a
) Experimente aqui$a+5
para5+$a
obter a conversão adequada ao receber a entrada da linha de comando, mas, de outra forma, impressionante. Obrigado!Pascal (FPC) ,
2670 bytesEditar: + variáveis de entrada.
Experimente online!
Experimente online!
Espero que minha resposta esteja de acordo com todas as regras do código-golfe. Foi divertido de qualquer maneira.
fonte
C # (.NET Core) ,
43,48,47, 33 bytesEDIT: Tentei usar% e, aparentemente, esqueceu como%. Obrigado a Arnauld por apontar isso!
EDIT2: AdmBorkBork com um campo de golfe de -1 bytes reorganizando os parênteses para ficar ao lado do retorno, para que não seja necessário espaço adicional!
EDIT3: Agradecimentos a dana pelo golfe de -14 bytes pelo atalho de retorno em uma linha e currying a função (Ty Embodiment of Ignorance por vincular ao TIO).
C # (.NET Core) , 33 bytes
Experimente online!
fonte
C (gcc) , 33 bytes
Experimente online!
Tentei uma abordagem que não vi mais ninguém tentar usar. A expressão de retorno é equivalente a
a+b==5||((-6<a-b||a-b<6)&&(a-b)%5==0)
.fonte
Scala, 43 bytes
Experimente online!
fonte
||
que|
? Eu sei que é possível em Java, C #, Python ou JavaScript, mas não tenho certeza sobre o Scala.Perl 6 , 24 bytes
-1 byte graças ao Grimy
Experimente online!
Isso usa o Any Junction, mas tecnicamente, também
^
pode funcionar.Explicação:
fonte
{$^a-$^b==5|0|-5|5-2*$b}
C (gcc) ,
4134 bytesExperimente online!
fonte
f
voltaa
? Apenas um comportamento indefinido?05AB1E ,
1312 bytesExperimente online!
Recebe a entrada como uma lista de números inteiros, economizando um byte. Obrigado @ Wisław!
Resposta alternativa de 12 bytes
Experimente online!
Este recebe entrada em linhas separadas.
fonte
|
?OI`αª5¢IË~Ā
. Entrada é uma lista de números inteiros.OIÆÄ)5QIËM
é 10.05AB1E , 10 bytes
Experimente online!
Tentei fazer isso usando operações apenas de pilha, mas foi mais longo.
fonte
0
como[5, -5]
OIÆÄ‚5QIËM
) está correta[5,-5]
.OsÆÄ‚5åsË~
. Quase idêntico ao seu, parece. Experimente online!Ruby , 34 bytes
Eval Online - Obrigado @ Somente ASCII
fonte
.nil?
verificação para fornecer a saída no formato necessário.->(a,b){[a+5,a-5,5-a,a].index(b).nil?}
, isso é mais longo que o atual.Tcl , 53 bytes
Experimente online!
fonte
Japonês ,
1413 bytesExperimente online!
fonte
Lote, 81 bytes
Recebe a entrada como argumentos da linha de comando e gera 1 em caso de êxito, nada em caso de falha. Lote não pode fazer disjunções facilmente, então eu uso as leis de De Morgan para transformá-lo em uma conjunção.
fonte
Carvão , 18 bytes
Experimente online! Link é a versão detalhada do código. Porto da solução Python 2 da @ ArBo.
fonte
Japonês,
1312 bytesExperimente ou execute todos os casos de teste
fonte
[-5,5]
(deve ser falsey)Lisp comum, 48 bytes
fonte
Braquilog , 8 bytes
Recebe a entrada como uma lista de dois números (use
_
para negativos). Experimente online!Explicação
Praticamente uma tradução direta das especificações:
fonte
Retina 0.8.2 , 82 bytes
Experimente online! O link inclui casos de teste. Explicação: As duas primeiras linhas convertem as entradas em unárias. A linha final verifica então qualquer uma das correspondências permitidas:
Pivotado pela última coluna, obtemos:
fonte