Isso é par ou ímpar?


65

Nota: Ainda não houve um desafio no teste de paridade de baunilha (existe um de C / C ++, mas que desabilita a capacidade de usar idiomas que não sejam C / C ++ e outros que não são de baunilha também estão fechados também), por isso estou postando 1.

Dado um número inteiro positivo, mostre sua paridade (ou seja, se o número for ímpar ou par) em valores de verdade / falsidade. Você pode escolher se os resultados verdadeiros correspondem a entradas ímpares ou pares.


Exemplos

Assumindo Verdadeiro / Falso como par e ímpar (Isso não é necessário, você pode usar outros valores de Truthy / Falsy para cada um), responsivamente:

(Input):(Output)
1:False
2:True
16384:True
99999999:False

Entre os melhores


2
Esta não é a primeira vez que confundi matemática com paridade computacional ... afinal, é um site de código !
Neil

Como essa é praticamente uma dessas perguntas ( 1 , 2 , 3 ), provavelmente deve haver um trecho para ver todas as respostas.
f Marnɛtɪk 21/03/19

4
@MikeBufardeci Como o "catálogo" é escrito de forma diferente, com base em qual país você é. Para aqueles de nós nos EUA, é "catálogo". "Classificação" é invariante na cultura.
mbomb007

2
@tuskiomi O desafio só pergunta sobre números inteiros positivos. (0 é considerado ainda, mas não positivo)
Calvin Hobbies

3
@LucioCrusca Bem-vindo ao PPCG! A idéia básica do Code Golf é criar um programa da forma mais curta possível. Esse desafio é ler um número inteiro (positivo, diferente de zero) e produzir se for par ou ímpar. Se você está confuso com alguma coisa, visite o The XIX XIX Byte e pergunte livremente. Ou, se você estiver confuso com a política ou regras do site, acesse o Meta . Finalmente, obrigado por se inscrever em nossa comunidade!
Matthew Roh 23/03

Respostas:


112

ArnoldC , 299 283 bytes

IT'S SHOWTIME
HEY CHRISTMAS TREE i
YOU SET US UP 0
GET YOUR ASS TO MARS i
DO IT NOW
I WANT TO ASK YOU A BUNCH OF QUESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY
GET TO THE CHOPPER i
HERE IS MY INVITATION i
I LET HIM GO 2
ENOUGH TALK
TALK TO THE HAND i
YOU HAVE BEEN TERMINATED

Isso gera 1(que é verdade) para entrada ímpar e 0(que é falso) para entrada par.

Experimente online!

Agora este é o plano ” (uma tentativa de explicação)

O código lê a entrada na variável i, a substitui pelo resultado do módulo 2 e a imprime.

IT'S SHOWTIME                                    # BeginMain
HEY CHRISTMAS TREE i                             #   Declare i
YOU SET US UP 0                                  #   SetInitialValue 0
GET YOUR ASS TO MARS i                           #   AssignVariableFromMethodCall i
DO IT NOW                                        #   CallMethod
I WANT TO ASK YOU ... ANSWERED IMMEDIATELY       #   ReadInteger
GET TO THE CHOPPER i                             #   AssignVariable i
HERE IS MY INVITATION i                          #     SetValue i (push i on the stack)
I LET HIM GO 2                                   #     ModuloOperator 2
ENOUGH TALK                                      #   EndAssignVariable
TALK TO THE HAND i                               #   Print i
YOU HAVE BEEN TERMINATED                         # EndMain

27
Minha primeira resposta ArnoldC!
Luis Mendo

16
BULLSHIT YOU HAVE NO RESPECT FOR LOGIC GET TO THE CHOPPER
Magic Octopus Urn

17
GET YOUR ASS TO MARS...Não tenho palavras.
Matthew Roh 21/03

12
Entrei para esta comunidade para votar isso. Bem feito, senhor
Erik

2
Entrei para esta comunidade para votar também neste post. :)
Vada Poché

46

brainfuck , 8 bytes

+[,>,]<.

A entrada está unária. A saída é o 1 (verdade) para números ímpares e NUL (falso) para números pares.

Experimente online!

Como funciona

Começamos incrementando a célula atual +para poder inserir o loop while [,>,].

Em cada iteração, ,lê um byte de STDIN, >avança para a célula à direita e depois ,lê outro byte de STDIN. Quando a entrada estiver esgotada, o intérprete (o TIO, de qualquer maneira) definirá a célula para NUL . Quando isso acontece, a condição do loop while não é mais preenchida e nós a rompemos.

Seja n o número inteiro de entrada. Se houver um montante de bytes de entrada - por exemplo, se n é o mesmo - o primeiro n / 2 iterações lerá dois 1 's, e a iteração seguinte irá ler dois NUL ' s, deixando a fita como se segue.

...   1  NUL  NUL
...  49    0    0
                ^

<.retrocede uma célula e imprime seu conteúdo, enviando um byte NUL para STDOUT.

No entanto, se houver uma quantidade ímpar de bytes de entrada, o primeiro (N - 1) / 2 iterações lerá dois 1 's, e a iteração seguinte irá ler um 1 e um NUL , deixando a fita como se segue.

...   1    1  NUL
...  49   49    0
                ^

<agora retrocede para uma célula que contém o byte / caractere 1 , que é .impresso.



26

Táxi , 1.482 1.290 1.063 1.029 1.009 bytes

Eu nunca escrevi um programa em Taxi antes e sou um novato em programação para geral, então provavelmente existem maneiras melhores de fazer isso. Eu verifiquei os erros e consegui jogar um pouco de golfe, tentando rotas diferentes com o mesmo resultado. Congratulo-me com toda e qualquer revisão.

Retorna 0para par e 1ímpar.

Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:s 1 l 1 r.Pickup a passenger going to Divide and Conquer.2 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 l 1 l 1 l 2 l.Pickup a passenger going to Divide and Conquer.Go to Divide and Conquer:e 1 l 2 r 3 r 2 r 1 r.Pickup a passenger going to Cyclone.Go to Cyclone:e 1 l 1 l 2 l.Pickup a passenger going to Trunkers.Pickup a passenger going to Equal's Corner.Go to Trunkers:s 1 l.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan "b" if no one is waiting.Pickup a passenger going to Knots Landing.Go to Knots Landing:n 4 r 1 r 2 r 1 l.[a]Pickup a passenger going to The Babelfishery.Go to The Babelfishery:w 1 l.Pickup a passenger going to Post Office.Go to Post Office:n 1 l 1 r.[b]0 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 r.Pickup a passenger going to Knots Landing.Go to Knots Landing:w 1 r 2 r 1 r 2 l 5 r.Switch to plan "a".

Experimente online!

Você está certo, é horrível ler sem quebras de linha. Aqui está uma versão formatada:

Go to Post Office:w 1 l 1 r 1 l.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery:s 1 l 1 r.
Pickup a passenger going to Divide and Conquer.
2 is waiting at Starchild Numerology.
Go to Starchild Numerology:n 1 l 1 l 1 l 2 l.
Pickup a passenger going to Divide and Conquer.
Go to Divide and Conquer:e 1 l 2 r 3 r 2 r 1 r.
Pickup a passenger going to Cyclone.
Go to Cyclone:e 1 l 1 l 2 l.
Pickup a passenger going to Trunkers.
Pickup a passenger going to Equal's Corner.
Go to Trunkers:s 1 l.
Pickup a passenger going to Equal's Corner.
Go to Equal's Corner:w 1 l.
Switch to plan "b" if no one is waiting.
Pickup a passenger going to Knots Landing.
Go to Knots Landing:n 4 r 1 r 2 r 1 l.
[a]Pickup a passenger going to The Babelfishery.
Go to The Babelfishery:w 1 l.
Pickup a passenger going to Post Office.
Go to Post Office:n 1 l 1 r.
[b]0 is waiting at Starchild Numerology.
Go to Starchild Numerology:n 1 r.
Pickup a passenger going to Knots Landing.
Go to Knots Landing:w 1 r 2 r 1 r 2 l 5 r.
Switch to plan "a".

Aqui está minha melhor tentativa de explicar a lógica:

Go to Post Office to pick up the stdin value in a string format.
Go to The Babelfishery to convert the string to a number.
Go to Starchild Numerology to pickup the numerical input 2.
Go to Divide and Conquer to divide the two passengers (stdin & 2).
Go to Cyclone to create a copy of the result.
Go to Trunkers to truncate the original to an integer.
Go to Equal's Corner to see if the two passengers are the same.
Equal's Corner returns the first passenger if they're the same (no .5 removal so the stdin was even) or nothing if they're not.
If nothing was returned, it was odd, so go pick up a 0 from Starchild Numerology.
Go to Knots Landing to convert any 0s to 1s and all other numbers to 0s.
Go to The Babelfishery to convert the passenger (either a 1 or 0 at this point) to a string.
Go to Post Office to print that string.
Try and fail to go to Starchild Numerology because the directions are wrong so the program terminates.

Não voltar para a Taxi Garage causa saída para a STDERR, mas estou bem com isso .


7
Eu sempre soube que Goto é mau
aross

2
Não apenas o idioma exige o uso extensivo de go to, o único método de ramificação é usar planos, que são apenas um nome diferente para ir para.
Engenheiro Toast

23

Retina , 8 bytes

[02468]$

Uma resposta de retina para entrada decimal. Essa também é uma solução simples de regex que funciona em praticamente qualquer sabor de regex. Corresponde (e imprime 1) para entradas pares e não corresponde (e imprime 0) para entradas ímpares.

Experimente online!

Uma alternativa, também para 8 bytes, usa um estágio de transliteração para converter todos os dígitos pares para o xprimeiro (porque os estágios de transliteração têm um built-in para dígitos pares / ímpares):

T`E`x
x$

Obviamente, o formato de entrada mais curto (ainda mais curto que o unário ) seria binário nesse caso, onde uma simples expressão regular 0$seria suficiente. Mas como o desafio é essencialmente encontrar o dígito binário menos significativo, a entrada binária parece contornar o desafio real.


11
+1 para "TeX". Faz-me querer ver uma resposta LaTeX ...
Brevan Ellefsen

@ Richard E, portanto, não é uma entrada válida que precise ser tratada. (Embora isso significa, na verdade, ele é tratado corretamente de qualquer maneira.)
Martin Ender


20

LOLCODE, 67 bytes

HOW DUZ I C YR N
  VISIBLE BOTH SAEM MOD OF N AN 2 AN 0
IF U SAY SO

Função que retorna WIN(verdadeiro) se o número for par; caso contrário, (ímpar) ele retornará FAIL(falso).

Ligue com C"123".


20

MATL , 5 3 bytes

Porque builtins são chatos

:He

Isso gera uma matriz de valores diferentes de zero (que é verdade) para entrada par e uma matriz com um zero na entrada inferior direita (que é falsa) para entrada ímpar.

Experimente online! O código do rodapé é umif-elseramo para ilustrar a veracidade ou falsidade do resultado. A remoção desse rodapé exibirá implicitamente a matriz.

Explicação

Considere a entrada 5como um exemplo

:     % Implicitly input n. Push row vector [1 2 ... n]
      % STACK: [1 2 3 4 5]
He    % Reshape into a 2-row matrix, padding with zeros if needed
      % STACK: [1 3 5;
                2 4 0]

7
. 'Builtins são chatos' HEAA, HEAA, HEAA (Desculpe que era um mau trocadilho)
Matthew Roh

3
@SIGSEGV HeHeHe
Luis Mendo

2
Abordagem inteligente! :)
Stewie Griffin

17

Java 8, 8 bytes

n->n%2<1

Experimente aqui.

Java 7, 30 bytes

Object c(int n){return n%2<1;}

Experimente aqui.

Saídas truepara números falsepares e números ímpares


Se 1/0fosse permitido em vez de true/false( não é, considerando o número de votos aqui ):

  • Java 8 (6 bytes): n->n%2
  • Java 7 (25 bytes): int c(int n){return n%2;}

22
Onde estão todas as coisas Java ridiculamente detalhadas? Eu sinto que esta é a menos 50 bytes muito curto ...
Stewie Griffin

2
Era uma vez uma tag chamada trolling de código . Mas esta é uma resposta Java aceita muito agradável , e aqui está uma resposta de código-golfe . E mais um pouco .
Stewie Griffin 21/03

2
Olá, o padrão é programa ou função , a menos que o desafio indique o contrário. O que significa que linguagens como Java e C # têm permissão para publicar apenas a função (e as importações necessárias) em vez de toda a classe. Se o solicitante de pergunta solicitasse especificamente um programa, eu realmente teria que incluir o código da fronteira, como a classe / interface e o método principal.
Kevin Cruijssen

11
@lukeg Se você quiser começar a responder aos desafios, aqui estão algumas dicas para jogar golfe em Java que podem ser interessantes de ler. Bem-vindo ao PPCG! :)
Kevin Cruijssen

6
@StewieGriffin Lá vai você! int o(int n){return java.util.stream.IntStream.of(n).map(n->n%2).filter(n==0).fi‌​ndAny().isPresent();‌​}
Olivier Grégoire

16

Piet, 15 codels / 16 bytes

Código fonte

5njaampjhompppam

Intérprete online disponível aqui.

Este programa retorna 0 se a entrada for par e 1 se a entrada for ímpar.

O texto acima representa a imagem. Você pode gerar a imagem colando-a na caixa de texto na página do intérprete. Por conveniência, forneci a imagem abaixo, onde o tamanho do codel é 31 pixels. A grade existe para facilitar a leitura e não faz parte do programa.

Explicação

Este programa usa o módulo interno para determinar se a entrada é par ou ímpar.

Instruction    Δ Hue   Δ Lightness   Stack
------------   -----   -----------   -------
In (Number)    4       2             n
Push [2]       0       1             2, n
Modulo         2       1             n % 2
Out (Number)   5       1             [Empty]
[Exit]         [N/A]   [N/A]         [Empty]

Os codels azuis escuros no canto inferior esquerdo nunca são visitados e podem ser alterados para qualquer cor diferente da cor de um codel vizinho. Eu escolhi o azul escuro porque acho que fica bem com o resto do programa. O codel preto superior esquerdo também pode ser branco, mas não qualquer outra cor. Eu escolhi o preto como acho melhor.

Forneci o programa na forma de imagem e texto, pois não há um consenso claro sobre como classificar os programas Piet. Sinta-se à vontade para comentar a meta discussão.



14

JavaScript, 6 bytes

Uma função anônima:

n=>n&1

Alternativamente com o mesmo comprimento:

n=>n%2

Ambos retornarão, o 0|1que deve atender ao requisito de truthy|falseyvalores.

Experimente as duas versões online


De acordo com a resposta Java, isso não atende aos requisitos. O JavaScript é diferente a esse respeito?
TheLethalCoder

4
A pergunta afirma claramente " Isso não é necessário, você pode usar outros valores de Truthy / Falsy ", quais 0|1são, certo? @TheLethalCoder
insertusernamehere

11
Não tenho certeza se eles estão em JavaScript, foi o que eu estava perguntando; veja a meta q / a para ver se estão. Eu não estou familiarizado o suficiente em JavaScript para saber.
precisa saber é o seguinte

4
JavaScript é muito mais frouxamente digitado que Java. É um prazer tratar praticamente qualquer coisa como qualquer tipo. Em particular, é um prazer tratar os carros alegóricos como booleanos (enquanto o Java lançará um erro em tempo de compilação se você fizer isso). (By the way, você possivelmente não querem saber por que isso retorna um float em vez de um número inteiro.)

11
Bom :) Eu não estava familiarizado o suficiente para me conhecer, então estava apenas me perguntando.
precisa saber é o seguinte

12

Japt , 1 byte

v

Retorna 1para números pares, 0para ímpares.

Experimente online!

Explicação

Uma das características definidoras de Japt é que, diferentemente da maioria das linguagens de golfe, as funções não têm aridade fixa; isto é, qualquer função pode aceitar qualquer número de argumentos. Isso significa que às vezes você pode deixar de lado os argumentos e o Japt adivinhará o que deseja. von numbers é uma função que aceita um argumento e retorna 1se o número é divisível pelo argumento, caso contrário 0. Por exemplo:

v3

Este programa será emitido 1se a entrada for divisível por 3 e 0caso contrário. Acontece que o argumento padrão é 2, resolvendo esse desafio em um único byte.


Solução alternativa de 1 byte:

¢

¢converte a entrada em uma string de base 2. A -hbandeira retorna o último caractere da string.

Experimente online!


11

brainfuck , 12 bytes

,++[>++]>++.

Isso requer um intérprete com uma fita circular e células que envolvem. A do TIO possui 65.536 células de 8 bits e atende aos requisitos.

A E / S está em bytes. As entradas ímpares são mapeadas para 0x00 (falsy), até as entradas para um byte diferente de zero (verdade).

Experimente online!

Como funciona

Começamos lendo um byte de entrada ,e adicionando 2 ao seu valor com++ . Veremos mais adiante por que o incremento é necessário.

Em seguida, inserimos um loop que avança para a célula à direita, adiciona 2 a ela e repete o processo, a menos que isso defina o valor da célula como 0 .

Inicialmente, todas as células, exceto a célula de entrada, retêm 0 . Se a entrada for ímpar, adicionar 2 a ela nunca a zerará. No entanto, depois de fazer um loop em torno da fita 127 vezes, a próxima iteração do loop definirá a célula à direita da célula de entrada como 128 × 2 = 0 (mod 256) , fazendo com que o loop termine. >++repete o corpo do loop mais uma vez, para que a próxima célula também seja zerada e impressa com ..

Por outro lado, se a entrada é n e n é par, o código antes do loop define a célula de entrada como n + 2 . Depois de fazer um loop pela fita (256 - (n - 2)) / 2 = (254 - n) / 2 vezes, a célula de entrada alcançará 0 e a célula à direita manterá o valor (254 - n) / 2 × 2 = 254 - n . Depois de adicionar 2 com >++, .imprimirá 256 - n = -n (mod 256) , que é diferente de zero, pois n é diferente de zero.

Finalmente, observe que o segundo caso imprimiria 258 - n = 2 - n (mod n) se não incrementássemos a entrada antes do loop, pois seria necessário mais um loop ao redor da fita para zerar a célula de entrada. O programa falharia, assim, na entrada 2 .


11

Sinclair ZX81 BASIC 124 bytes 114 bytes 109 bytes 57 50 bytes BASIC tokenizados

De acordo com os comentários de Adám abaixo, aqui está o último candidato a lançamento:

 1 INPUT A
 2 IF NOT A THEN STOP
 3 PRINT A;":";NOT INT A-(INT (INT A/VAL "2")*VAL "2")

Será agora PRINT 1para mesmo e0 ímpar. Zero sai.

Aqui estão as versões mais antigas da lista simbólica para fins de referência:

 1 INPUT A
 2 IF NOT A THEN STOP
 3 LET B=INT (INT A/2)
 4 PRINT A;":";NOT INT A-B*2
 5 RUN

Aqui está a listagem antiga (v0.01), para que você possa ver as melhorias que eu fiz, além de essa nova listagem ser menor, mas é mais rápida:

 1 INPUT A
 2 IF A<1 THEN STOP
 3 LET B=INT (INT A/2)
 4 LET M=1+INT A-B*2
 5 PRINT A;":";
 6 GOSUB M*10
 7 RUN
10 PRINT "TRUE"
11 RETURN
20 PRINT "FALSE"
21 RETURN

E aqui está a v0.02 (usando as sub-strings do Sinclair):

 1 INPUT A
 2 IF NOT A THEN STOP
 3 LET B=INT (INT A/2)
 4 LET M=1+INT A-B*2
 5 LET C=4*(M=2)
 6 PRINT A;":";"TRUE FALSE"(M+C TO 5+C+(M=2))
 7 RUN

ZX81 em ação - verdadeiro ou falso da v1 / 2


11
Isso não é complexidade kolmogorov . Você apenas precisa retornar 0 ou 1 para qualquer entrada.
Adám 23/03/19

A pergunta parece ter sido editada desde que eu fiz minha entrada inicial, pois ela <i> leu </i> como true / false, que precisava ser retornada. Como tal, posso simplificar ainda mais a listagem simbólica.
Shaun Bebbers 23/03

11
Por que você precisa sair do zero? Você não pode apenas PRINT (A-2*INT A/2)/A?
Adám 24/03/19

Na pergunta original, que foi útil para editar, especificou que o valor 0não deveria produzir um TRUEou FALSE, portanto, como 0não deveria produzir um resultado, solicitei que ele STOPfizesse ping no programa. Provavelmente interpretei a pergunta original, pois ela foi postada por @SIGSEGV um pouco literalmente demais. Sim, pode-se otimizar e refatorar, você está correto.
Shaun Bebbers 24/03


8

Retina, 3 bytes

11

A nova linha à direita é significativa. Recebe entrada em unário. Saídas 1 para números ímpares, nada para números pares. Experimente online!


Você pode copiar a resposta completa (com a formatação necessária para o avanço de linha à direita) do TIO.
Martin Ender

@MartinEnder Não, eu não sabia.
Neil

É o penúltimo trecho quando você gera o link permanente.
Martin Ender

Oh, é um trecho inteiro? Acabei de ver a linha do título.
Neil

@ Neil, se você clicar no trecho, ele será expandido e você verá o corpo #
Dada

8

C ++, 25 bytes

template<int v>int o=v&1;

Isso define um modelo de variável ( uma construção semelhante à função ) com valor igual à operação bit a bit input&1. 0para valores pares, 1para valores ímpares. O valor é calculado em tempo de compilação.

Requer C ++ 14.

Experimente online!


Uau, isso parece realmente inteligente. Eu nunca vi uma resposta como essa antes! Como você chama isso?
DJMcMayhem

@DJMcMayhem É um uso simples dos modelos de variáveis do C ++ 14 . Porém, não é tão inteligente assim: uma função simples aproach ( int o(int v){return v&1;}) levaria a mesma quantidade de bytes, com a diferença de que o valor seria calculado em tempo de execução.
Cássio Renan

Eu não acho que isso realmente se qualifique, pois o código seria compilado em um retorno 1 ou retorno 0. Executar o mesmo código compilado novamente nunca produziria um resultado diferente, não é uma função dessa maneira. Mais perto de uma constante.
Drunken Code Monkey

@DrunkenCodeMonkey o tempo de avaliação é irrelevante. O que importa é que eu possa passar argumentos para a construção (fornecer entrada) e ela retornará resultados (saída de retorno). Do seu ponto de vista, nenhuma função seria qualificável, pois, sem um main()construto semelhante, o programa também seria compilado em um return 0, ou até falharia em compilar. Isso contradiz o meta post ao qual vinculei nesta resposta.
Cássio Renan

11
C ++ função lambda salva 3 bytes [](int x){return x%2;} Experimente on-line
Johan du Toit

8

Pyth, 3 2 bytes

Eu fiz isso. Eu jogava golfe no ingovernável. Pela primeira vez, é uma solução não trivial que conseguiu obter o último byte!

!F

Verdadeiramente em valores pares (sem incluir 0, mas isso não é positivo, então ...).

Explicação:

!    Not
 FQQ Applied to the input (first Q) Q times

Por exemplo !!2 = !0 = 1, e!!!3 = !!0 = !1 = 0

Vou manter minha biblioteca de soluções de 3 bytes aqui abaixo.

"Há outra resposta com várias soluções de 3 bytes, mas está longe de ser completa. Vamos adicionar mais algumas:

@U2

Indexa na lista [0,1]modularmente, fornecendo valores verdadeiros em entradas ímpares.

}2P

2 é a fatoração principal da entrada? (Verdade mesmo)

ti2

O GCD é 2 e a entrada 2? (Verdade mesmo)

gx1

XOR-ing a entrada com 1 não diminui? (Verdade mesmo)

q_F

Basicamente, Q == Q*-1^Qonde Q é a entrada, mas feito através de um loop. (Verdade mesmo)

_FI

O mesmo que acima.

g^_

Traduz para Q <= -Q^Q(Truthy on even)

Observe que qualquer uma das soluções acima envolve gtrabalhará com <falsidade de verdade invertida.)


11
Sim, isso é bastante inteligente :)
Digital Trauma

7

C #, 8 bytes

n=>n%2<1

Compila para um Func<int, bool>.

Ou, se uma função anônima não for permitida, este método para 21 bytes:

bool p(int n)=>n%2<1;

@obarakon Não está em C #, veja esta resposta na meta . Basicamente if (1), não compila.
TheLethalCoder 23/03

não existe if (1)no seu código?
VOCÊ

11
@YOU Correto, leia a meta post para entender o que eu quis dizer com isso.
precisa saber é o seguinte

2
@YOU, a definição aceita (neste site) de um valor de verdade / falsey é: Se if (x)avaliada como verdadeira, então xé um valor de verdade . Se avalia falso, então é false. Assim, em pseudo-código: if x, disp(true), else disp(false). Se isso não for compilado, xnão poderá ser usado. Em MATLAB e várias outras línguas, qualquer coisa que não zero é considerado verdadeiro, enquanto 0e falsesão consideradas falsas. Portanto, a string Helloé um valor verdadeiro em MATLAB. No entanto, alguns idiomas exigem que o valor seja um valor booleano (o caso aqui), portanto, ele deve ser convertido em um booleano usando <1.
Stewie Griffin

Eu vejo. obrigado pelas explicações.
VOCÊ

7

Pitão, 3

Eu estava esperando que pyth tivesse um byte de 1 ou 2 bytes embutido para isso. Em vez disso, aqui estão as melhores soluções que eu poderia encontrar:

%Q2

ou

.&1

ou

e.B

2
Não é embutido, mas existe uma solução de 2 bytes .
Steven H.

7

TIS-100, 39 bytes

Obviamente, este é, mais precisamente, um programa para a arquitetura do Nó de Execução Básica T21, conforme emulado pelo emulador TIS-100.

Vou encaminhá-lo a esta resposta para obter uma explicação incrivelmente detalhada da pontuação dos programas TIS-100, bem como de sua estrutura.

@0
ADD UP
G:SUB 2
JGZ G
MOV ACC ANY

Explicação:

@0          # Indicates that this is node 0
ADD UP      # Gets input and adds it to ACC, the only addressable register in a T-21
G:          # Defines a label called "G"
SUB 2       # Subtracts 2 from ACC
JGZ G       # If ACC is greater than 0, jumps to G
MOV ACC ANY # Sends the value of ACC to the first available neighbor; in this case, output.
            # Implicitly jumps back to the first line

No pseudocódigo, seria algo como:

while (true) {
    acc = getIntInput()
    do {
        acc -= 2
    } while (acc > 0)
    print(acc)
}

O T21 não possui tipos booleanos ou valores de verdade / falsidade; portanto, o programa retorna -1 para números ímpares e 0 para números pares, a menos que a entrada anterior seja ímpar; nesse caso, retorna -1 para números pares e 0 para ímpares números - se esse fato o incomodar, esta é uma resposta completa do programa, para que você possa reiniciar o seu T21 entre os usos.


Eu estava pensando no TIS-100, o jogo de quebra-cabeça da Zachtronics, já que queria comprá-lo na semana passada. O TIS também é um idioma real ou existe apenas nesse videogame?
precisa saber é o seguinte

@seshoumara Que eu saiba, ele existe apenas dentro do jogo. Toda a arquitetura das máquinas no TIS é meio típica, e essa linguagem no estilo Assembly se encaixa nisso.
21317

Eu posso confirmar, ele existe apenas no jogo (e, de fato, mesmo no universo é uma arquitetura estranha e bizarra). Eu escrevi a resposta que Turtleman ligou como se houvesse dispositivos TIS reais, mas eu fiz isso apenas por diversão.
Undergroundmonorail

2
@ Blacksilver O verdadeiro desafio, eu acho, seria dar uma resposta espacial!
31517 Tutleman

11
Eu implementei um emulador de TIS para TIO, então agora você pode experimentá-lo online!
Phlarx 02/05/19

6

Geléia , 1 byte

Experimente online!

Apenas mais um builtin.

Para pessoas que não conhecem o Jelly: ele tem bastante capacidade de inferir bits de código ausentes, portanto, não há muita diferença sintática entre um snippet, uma função e um programa completo; o intérprete adicionará automaticamente o código para inserir argumentos apropriados e produzirá o resultado. Isso é bastante útil quando se lida com regras PPCG, que permitem funções e programas, mas não permitem trechos. No link TIO, estou tratando isso como uma função e executando-o em cada número inteiro de 1 a 20, inclusive, mas funciona como um programa completo também.

Geléia , 2 bytes

&1

Experimente online!

É muito curto sem o embutido também. (Isso é bit a bit-AND com 1.)


2
Todas essas linguagens parecem meio trapaceiras para essas perguntas lol
Drunken Code Monkey

6

7 , 18 caracteres, 7 bytes

177407770236713353

Experimente online!

7 não possui nada parecido com uma instrução if normal e possui mais de uma maneira idiomática para representar um booleano. Como tal, é difícil saber o que conta como verdade e falsey, mas este programa usa1 para a sequência ímpar e nula para o par (os valores de truthy e falsey para Perl, nos quais o intérprete 7 está escrito). (É fácil mudar isso; a saída ímpar é especificada antes dos 7 primeiros, a saída par é especificada entre os dois primeiros 7s. No entanto, pode ser necessário alterar o formato de saída para lidar com outros tipos de saída; usei os dois saídas distintas mais curtas aqui.)

7 usa uma codificação octal compactada na qual três bytes da fonte representam oito bytes do programa, de modo que 18 caracteres da fonte são representados em 7 bytes no disco.

Explicação

177407770236713353
 77  77     7       Separate the initial stack into six pieces (between the 7s)

        023         Output format string for "output integers; input one integer"
       7   6        Escape the format string, so that it's interpreted as is
             13     Suppress implicit looping
               3    Output the format string (produces input)
                5   Run the following code a number of times equal to the input:
   40                 Swap the top two stack elements, escaping the top one
                 3  Output the top stack element

Como muitos formatos de saída, "números inteiros de saída" desfaz qualquer número de níveis de escape antes da saída; portanto 40, que combinadas fazem uma operação de troca e escape, podem ser usadas no lugar de 405uma operação de troca (que é uma troca e fuga seguida de uma retirada). Se você estiver usando um formato de saída que não é estável em relação à fuga, precisará do total 405lá. (Aliás, a razão pela qual precisávamos escapar da cadeia de formatação originalmente é que, se a primeira saída contiver caracteres não representáveis, ela automaticamente força o formato de saída 7. Ao sair, remove os caracteres não representáveis ​​e permite que o formato 0 seja selecionado.)

Dos seis elementos iniciais da pilha, o mais alto é o programa principal (e é consumido pela 13primeira coisa a ser executada); o segundo é o 023que seleciona o formato de saída e solicita entrada e é consumido por essa operação; o terceiro é consumido como efeito colateral da 3operação (é usado para descartar elementos de pilha, além de produzir saída); o quarto,, 40é o corpo do loop (e consumido pelo 5que executa o loop); e o quinto e o sexto são trocados um número de vezes igual à entrada (assim terminam em suas posições originais se a entrada for par ou nas posições um do outro se a entrada for ímpar).

Você pode jogar fora um personagem alterando o líder 177para 17(e confiando em um sexto elemento vazio implícito da pilha), mas isso mudaria a paridade das saídas para um método menos idiomático do que o estranho é verdadeiro, e ele não salva um byte inteiro (a fonte ainda tem sete bytes). Como tal, decidi usar a forma mais natural de produção, pois ela não é pior.


6

Flak cerebral , 22 20 bytes

Aqui está outra resposta interessante no Brain-Flak, você também deve conferir

(({})){({}[()]<>)}<>

Experimente online!

Explicação

Para começar, faremos uma cópia de nossa entrada com (({})).

A cópia inferior servirá como um valor verdadeiro, enquanto a cópia superior será usada para o processamento real. Isso é feito porque precisamos que a entrada esteja no topo e é bastante complicado (dois bytes extras!) Colocar 1 abaixo da entrada.

Então começamos um loop {({}[()]<>)}. Essa é uma modificação simples no loop de contagem regressiva padrão que alterna as pilhas cada vez que diminui.

Como existem duas pilhas, um número par terminará no topo da pilha em que começou, enquanto um número ímpar terminará na pilha oposta. O valor copiado permanecerá no local e, portanto, atuará como um marcador de onde começamos.

Quando terminamos o loop, temos um 0(originalmente a entrada) em cima de um valor de verdade (a cópia da entrada) ou falso (pilha vazia). Também temos o valor oposto na outra pilha.

Precisamos nos livrar do 0que pode ser removido por {}ou <>. Ambos parecem funcionar e dão resultados opostos, no entanto{} causa um valor falso para zero, quando deve retornar a verdade. Isso ocorre porque nosso valor "verdade" é uma cópia da entrada e zero é a única entrada que pode ser falsa.

Esse problema é resolvido encerrando o programa <>.

(Obviamente, de acordo com a especificação, tecnicamente não tenho que suportar zero, mas dê duas opções que eu preferiria)


6

BitCycle , 19 17 16 bytes

?ABv
 / \ <
!+ <

Experimente online!

Argh, eu sinto que há uma solução de 18 bytes flutuando fora do alcance :( Haha! -2 bytes usando a +para redirecionar bits provenientes de diferentes direções.

Parece que ainda há muito espaço em branco (um total de 6 bytes!)

Explicação:

?ABv    Feed unary input into the main loop
 / \    Every loop, two bits will be removed from the input
 + <

 / \ <  When we reach the point where there is either one or no bits of input left
!+      If one, it will reflect off both /\s and turn left at the +
        And output, otherwise the program ends since no more bits are moving

5

Lote, 16 bytes

@cmd/cset/a%1%%2

Saídas 1 para ímpar, 0 para par. A versão alternativa de 16 bytes também funciona em números negativos:

@cmd/cset/a"%1&1

17 bytes para gerar 1 para par, 0 para ímpar:

@cmd/cset/a"~%1&1

Seu programa faz eco apenas do resultado MOD, que está incorreto. A pergunta dizia que o formato de saída deveria ser " (Input):(Output)"
stevefestl 21/03

5

Excel, 10 bytes

=MOD(A1,2)

Ou:

=ISODD(A1)

Para saída de:

http://i.imgur.com/7dJydqc.png


11
Eu nunca vi o excel no código de golfe ... #
programmer5000

11
Versão alternativa do Excel VBA deste código ?[A1]mod 2; uma função de janela imediatos anônima VBE que leva entrada de [A1]e saídas para a janela imediatos do VBE com 0(Falsey) representando mesmo e 1(truthy) representando estranho
Taylor Scott

5

JSFuck , 9685 9384 6420 bytes

O JSFuck é um estilo de programação esotérico e educacional baseado nas partes atômicas do JavaScript. Ele usa apenas seis caracteres diferentes para escrever e executar código.

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]])+[])[!+[]+!+[]]+(!![]+[])[+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+!+[]])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]+!+[]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(+(!+[]+!+[]+[+!+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+!+[]+[+!+[]])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])()(([]+[])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[+[]])[+[]]+[!+[]+!+[]])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]

Saídas 1 para ímpar e 0 para par.

Experimente online!

alert([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]])+[])[!+[]+!+[]]+(!![]+[])[+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+!+[]])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]+!+[]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(+(!+[]+!+[]+[+!+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+!+[]+[+!+[]])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])()(([]+[])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[+[]])[+[]]+[!+[]+!+[]])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]](prompt()))


Eu acho que você pode produzir 0/1 em vez de verdadeiro / falso. alert(prompt()%2)parece ser 9384 caracteres.
ETHproductions

Joguei isso até 6497 caracteres . Isto equivale a seguinte JavaScript: []["fill"]["constructor"]("return this%2")["call"]. fillfoi escolhido porque isso custa apenas 81 caracteres, o menor de todos os métodos de matriz. Além disso, você pode argumentar que o JSFuck não é uma linguagem separada, mas um subconjunto de JavaScript.
Luke

@ Lucas Não consigo fazer isso rodar no trecho de código e, como isso é apenas uma resposta de brincadeira, vou ficar com a versão baseada em alerta, a menos que você possa me ajudar a descobrir o que estou fazendo de errado.
21417 powelles

@ Luke Substitua o espaço por a +para salvar mais 77 bytes ;-) E eu pessoalmente acho que responder em JSF é bom; é basicamente um dialeto de JS.
ETHproductions

O código que eu colei é como um nome de função. Basta acrescentar os parênteses e incluir o argumento.
21417 Luke

5

Bash + bc, 21 14 11 9 bytes

bc<<<$1%2

Lê a entrada da linha de comando, expande o valor para a sequência com a operação mod e canaliza a sequência para bc para cálculo. Saídas 1 para ímpar, 0 para par.

Casos de teste:

(Input):(Output)
1:1
2:0
16384:0
99999999:1

Edit: salvou 7 bytes graças a @ ais523
Edit 2: salvou outros 3 bytes graças a @Dennis
Edit 3: salvou mais dois graças a @Dennis


2
Bem vindo ao site!
DJMcMayhem

Talvez você possa levar a entrada de um argumento da linha de comando para bash (como $1) em vez de gastar bytes lendo-o do stdin?

@ ais523: Ótima sugestão! Eu deveria ter pensado em fazer isso em um script, em vez de apenas na linha de comando.
31417 Christopher Christopher

Você pode encurtar isso para bc<<<$1%2.
Dennis

@ Dennis: Obrigado! Eu tentei isso antes, mas não consegui acertar a sintaxe.
Christopher Pitts
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.