Acabei de experimentar um jogo chamado Couch 2048 .
(Observação: você deve entender melhor essa pergunta.)
Como não foi muito emocionante para mim, eu me perguntei: 'Quanto mais até 2048 !?'
Isso me inspirou a postar um desafio, porque calcular isso não é tão fácil quanto eu pensava.
Seu objetivo:
Dada uma lista de bolas no sofá, você deve gerar quantas bolas com um valor de 2 cairão do céu para que se possa vencer o jogo (alcançando a bola 2048).
- Suponha que a entrada seja válida.
- Suponha que o jogador não deixe cair nenhuma bola.
- Suponha que as bolas que caem do céu sempre tenham um valor 2, como eu disse.
- Exemplos de saída válidos: 3, "4", [5], ["6"]
Editar:
devo esclarecer uma coisa:
- Você precisa imprimir a menor quantidade de 2s necessária.
Casos de teste:
[2048] -> 0
você já venceu
[1024,1024] -> 0
Você não precisa de mais bolas para ganhar
[1024,512,256,128,64,32,16,8,4,2] -> 1
Uma bola é necessária para 'ativar a corrente'
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982
Notas :
Não sou um falante nativo - diga-me se você viu um erro de digitação ou algum texto não gramatical.
Se algo não estiver claro, pergunte nos comentários.
[4,16,64] -> 22
?2048
e divida por2
- se assim for, você pode querer checar novamente o último caso de teste - se não, use-o como um exemplo para explicar por que a saída não é 't982
.Respostas:
Java 8, 17 bytes
Porto da resposta JavaScript @LuisFelipeDeJesusMunoz ' .
Experimente online.
Explicação:
fonte
Flak cerebral , 72 bytes
Experimente online!
fonte
Python 2 , 22 bytes
Sabe, eu acabei de perceber que
4**5
tem o mesmo comprimento que1024
.Experimente online!
fonte
MathGolf ,
65 bytesPrimeira resposta do MathGolf. :)
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte
05AB1E , 5 bytes
Porto da resposta JavaScript @LuisFelipeDeJesusMunoz ' .
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte
APL (Dyalog Unicode) , 10 bytes
Experimente online!
fonte
JavaScript (Node.js) , 25 bytes
Com base no comentário e resposta de @Shaggys
-3 bytes de @Arnauld = D
Experimente online!
fonte
J , 10 bytes
Experimente online!
Alternativo:
J , 10 bytes
Experimente online!
fonte
Ruby , 17 bytes
Experimente online!
fonte
Catholicon , 5 bytes
Explicação:
fonte
TI-Basic, 8 bytes
fonte
JavaScript, 28 bytes
Experimente online
fonte
Geléia ,
76 bytesExperimente online!
Explicação:
-1 byte usando um número base-250
fonte
Japonês,
76 bytesExperimente ou verifique todos os casos de teste
fonte
perl -aE, 27 bytes
Isso lê uma linha com números (espaços em branco separados) de
STDIN
e grava a resposta emSTDOUT
.O que ele faz é subtrair todos os números da entrada de 2048 e divide o restante por 2. O
-a
comutador coloca o na matriz@F
(um número por elemento). Se interpolarmos uma matriz em uma string (que é o que estamos fazendo aqui), o perl coloca o valor$"
entre os elementos. A variável pouco usada$:
é o padrão\n-
; e como o espaço em branco entre os tokens é ignorado, o resultado está subtraindo todos os números de 2048. Oeval
cálculo é feito.fonte
JavaScript (Node.js) , 33 bytes
Experimente online!
Por que você não faz
[1024,1024,1024]
?fonte
R , 17 bytes
Experimente online!
fonte
TeaScript , 11 bytes
Experimente online!
fonte
Stax , 6 bytes
Execute e depure
fonte
Perl 6 , 12 bytes
Experimente online!
Anônimo Qualquer que seja a lambda que pega uma lista e retorna um número.
fonte
AWK, 26 bytes
Os números de entrada são separados por novas linhas (ou seja, uma por linha)
fonte
Neim, 6 bytes
Muito novo para Neim, mas funcionou
Explicação:
Experimente online!
fonte
JAVA, 30 bytes
fonte
RAD , 10 bytes
Experimente online!
fonte
Clojure , 24 bytes
Experimente online!
fonte
Haskell , 16 bytes
Uma função anônima, pega uma lista e retorna um float.
Experimente online!
fonte
F #, 24 bytes
1024 menos a soma dividida por 2.
fonte