10 9 8 7 6 5 4 3 2 1… Imprimir 2016

12

Como resultado do meu desafio no Puzzling , seu objetivo é produzir 2016.

Regras:

  • Você deve incluir os números 10 9 8 7 6 5 4 3 2 1nessa ordem. Eles podem ser usados ​​como números inteiros individuais ou concatenados juntos (como 1098), mas 10não podem ser separados por 1e 0- nenhum caractere (s) pode estar presente entre os dígitos. Observe que, em alguns idiomas, 10pode não representar o literal inteiro 10, o que é aceitável.
  • Seu código não deve conter outros números ou variáveis ​​ou constantes de números predefinidos (portanto, Tem Pyth não é permitido, pois é uma constante numérica).
  • Você deve calcular 2016 usando numéricos. A saída simples 2016sem executar nenhuma operação nos números necessários (por exemplo, decodificando uma sequência codificada que consiste apenas em caracteres alfabéticos) não é permitida. Saída 2016em pedaços (como 20, então 16) também não é permitida; você deve ter uma única saída consistindo no valor numérico 2016.
  • A resposta válida com o menor número de bytes vence.
rybo111
fonte
3
@nicael Tenho certeza que resolver o quebra-cabeça já foi feito. Tivemos vários desses desafios de "operadores de inserção para resolver uma equação", mas eles são excepcionais difíceis de pesquisar.
Martin Ender
1
A revisão anterior (2) foi mais interessante, na verdade. O novo está apenas imprimindo a string, o cálculo já foi feito em sua pergunta intrigante ...
nicael
1
Apenas algumas perguntas com base no que eu posso ver sobre a questão atual: 1) podemos calcular 20e 16e imprimi-los um após o outro ou não a necessidade número calculado para ser 2016 antes de imprimir? 2) As funções são permitidas? 3) A concatenação de dígitos é permitida? por exemplo 1098(estou assumindo que sim por comentários anteriores, mas apenas para confirmar) 4) "Calcular 2016 usando números inteiros" significa que nunca podemos flutuar em lugar algum em uma etapa intermediária? por exemplo, posso calcular o número da raiz quadrada e arredondar para baixo?
Sp3000
1
5) O que acontece se eu tiver um idioma em que "10" não seja tratado como o número dez, e sim um seguido por um zero e não houver maneira de contornar isso? Esse idioma é desqualificado? (idioma do exemplo: Befunge) 6) Podemos usar uma variável numérica predefinida no lugar de 10, por exemplo T987654321?
Sp3000
@ Sp3000 1 No. 2 No. 3 Sim. 4 Os flutuadores estão OK, desde que você não quebre outras regras. 5 10deve ser incluído para que você precise lidar com isso de alguma forma. 6 Desde que 10apareça antes T.
precisa saber é o seguinte

Respostas:

22

Geléia , 17 15 14 bytes

109876:54+3_21

Experimente online!

Como funciona

109876:54+3_21

109876            Initialize the left argument as 109876.
      :54         Perform integer division by 54, yielding 2034.
         +3       Add 3, yielding 2037.
           _21    Subtract 21, yielding 2016.
Dennis
fonte
8

Hexagonia, 61 bytes

Não vou ganhar, mas eu só queria fazer um desafio no Hexagony.

Isso usa um método diferente de outras respostas (muito pior). São necessários alguns fatores de 2016 (2,3,6,7,8) e os multiplicam todos juntos.

Minificado:

\109.8/7}_=\"6<}{>...$_5_4/*!@...../}3.."2\/="*=}<*...$1>"*"/

Desminificado:

    \ 1 0 9 .
   8 / 7 } _ =
  \ " 6 < } { >
 . . . $ _ 5 _ 4
/ * ! @ . . . . .
 / } 3 . . " 2 \
  / = " * = } <
   * . . . $ 1
    > " * " /

Explicação em breve;

Azul
fonte
5
" Explicação em breve; " Acho que temos uma compreensão diferente de 'em breve'. ; P
Kevin Cruijssen
1
@KevinCruijssen Opa, eu esqueci completamente isso. ... E agora eu não entendo mais como isso funciona. Ótimo.
Azul
5

Pitão, 16 bytes

+/109876 54-3 21

Faz divisão inteira e adiciona (3-21).

Experimente aqui .

lirtosiast
fonte
4

TI-BASIC, 17 15 bytes

int(109876/54-√(321

Isso usa o método do @ nicael.

17 bytes:

10+9*8-7+654*3-21

Esta solução da Puzzling pode ser traduzida diretamente para o TI-BASIC.

lirtosiast
fonte
1
Também é válido em japonês e provavelmente em alguns outros.
ETHproductions
1
Também funciona no PowerShell e Mathematica (Wolfram), e eu imagino muitos, muitos outros. E provavelmente funciona em dezenas de outras com modificações triviais.
AdmBorkBork
Uma solução poliglota linda
TanMath
Se você quiser usar os outros idiomas, excluirei o wiki da minha comunidade.
Addison Crump
3

Japonês, 17 16 bytes

Â(109876/54-321q

Eu odeio isso 17. Provavelmente vai encontrar outra solução. YAYZ.

Explicação:

  • 321q é uma raiz quadrada de 321.
  • ~~ aumenta o número.

Experimente online!

nicael
fonte
Â== ~~:-)
ETHproductions
109876/54-321¬fé 15 :-D
ETHproductions
@ Et, mas f não funciona, não?
Nicael
Deve ser consertado. Mas o intérprete está em manutenção no momento, eu o recuperarei momentaneamente.
ETHproductions
109876/54-321q)fagora funciona. A outra sugestão não.
ETHproductions
3

Matlab / Octave, 23 bytes

(10-9+8-7)^(6-5+4)*3*21

Experimente online

Luis Mendo
fonte
3

bc, 14

109876/54+3-21

Nada emocionante aqui - empresta outras respostas.

Trauma Digital
fonte
1
O equivalente em CC 109876 54/3+21-pmarca 16, mas não garante uma resposta própria.
Toby Speight
2

Haskell, 31 bytes

[10,9*8*7+const 6 5..]!!4+3*2*1

Não é o mais curto, 10+9*8-7+654*3-21como visto em outras respostas, também funciona em Haskell, mas algo diferente.

Isso cria uma lista começando com 10e 9*8*7+6 = 510, portanto, o deslocamento é 500para os seguintes elementos. A lista inteira é [10,510,1010,1510,2010,2510 ...]. Nós escolhemos o 4thelemento (baseado no índice 0), ie, 2010e adicionamos 3*2*1 = 6. Voilà.

Eu uso const 6 5 = 6para me livrar do 5que não é necessário.

nimi
fonte
2

Python 2, 20 bytes

print 109876/54+3-21

Mais uma vez, o mesmo chato 2016.(740). Faz uso do fato de que, se você não tiver um número decimal em sua expressão, ele retornará um número inteiro.

Erik, o Outgolfer
fonte
1

> <> (peixe), 18 bytes

10987**r65r4*n;321

explicação:

multiplica 9 8 e 7 juntos para obter 504, inverte a pilha e inverte-a novamente imediatamente antes da adição de 4, depois multiplica 504 e 4 para obter 2016. Em seguida, imprime o número e termina o programa antes dos últimos 3 números (eu poderia fazer depois também sem diferença, se isso importa em termos de regras).

torcado
fonte
1

Matemática ++ , 17 bytes

_(109876/54)+3-21

Na verdade, isso imprime 2016.0. Mas não há realmente nenhuma maneira de imprimir a string exata 2016nesse idioma.

A solução TI-BASIC de 17 bytes também funcionaria aqui.

SuperJedi224
fonte
1

Poliglota, 17 bytes

10+9*8-7+654*3-21

Esse código, usado pela primeira vez na resposta TI-BASIC de Thomas Kwa , também funciona em:

  • AppleScript (programa completo)
  • bc (programa completo)
  • Math ++ (expressão ou programa completo)
  • Mathematica (função, portanto, não é válida)
  • Powershell (programa completo)
  • Japt (programa completo)
  • JavaScript (entrada do console, portanto, não é válida) Precisa de segunda verificação
  • Perl 5 (função, portanto, não é válida). Precisa de segunda verificação
  • Haskell (função, portanto, não válida)
  • Python REPL (expressão, portanto, o ambiente REPL é necessário para obter a saída)
VoteToClose
fonte
1
E qual é o objetivo?
Nicael
@nicael Estou --- indo --- estou planejando (a menos que Thomas Kwa queira adicionar as outras respostas às dele) para adicionar todas as respostas que envolvem essa resposta (exceto a TI-BASIC) que eu puder encontrar. Marcado como Comunidade para que outros possam contribuir.
Addison Crump
1
Por que a "função, portanto, não é válida", observa? As funções são permitidas por padrão.
nimi
5
Eu não sei sobre os outros idiomas, mas 10+9*8-7+654*3-21não é uma função JavaScript nem Perl.
Dennis
1
@ SP3000: Oh essas mudanças de regras invalidar ...
nimi
1

𝔼𝕊𝕄𝕚𝕟 2, 15 caracteres / 17 bytes

109876/54+3-21⍜

Try it here (Firefox only).

Traduz para round(109876/54+3-21).

Obrigado a @Dennis por salvar 2 bytes!

Mama Fun Roll
fonte
1

Java 7, 31 bytes

int c(){return 109876/54+3-21;}

Porta chata de outras respostas, das quais acredito que a resposta de @Dennis 'Jelly foi a primeira.

Kevin Cruijssen
fonte
1

PHP, 27 bytes

<?=~~(109876/54+3-21);

(22 bytes) era muito chato,

então eu usei 10 a 9 como números separados:

<?=10*(9-8+7-6),5+4-3+2<<1;

outras soluções, principalmente com pequenos truques:

30: <?=10**(9+8-7-6)/5+4*3+(2<<1);
30: <?=10*trim(9*8,7),6+5+4+3-2*1;
29: <?=10*trim(9*8,76),5*4-3-2+1;
31: <?=10*trim(9*8,765),4+(3*2<<1);
31: <?=10*trim(9*8,765),4*3+(2<<1);
32: <?=ceil(1098*76/54)+321+ord(~j);
33: <?=(10<<9)/876*543/M_PI*2-M_E&~1;
Titus
fonte
0

Via Láctea 1.6.5 , 28 25 bytes

10+9*(8)7;^*6*5/4*3/2*A!1

Explicação

10+9*                      ` perform 10*9 (leaves 90 at TOS)
     (8)7;^*               ` get rid of 8 and multiply the TOS by 7
            6*5/4*3/2*A    ` perform TOS*6/5*4/3*2 (leaves 2016 at TOS)
                       !   ` output the TOS
                        1  ` push 1 to the stack
Zach Gates
fonte
0

BotEngine , 42 39 36 13x2 = 26

v109876543210
>ee   e@  eRP
SuperJedi224
fonte
0

05AB1E , 15 bytes

109876 54÷3+21-

Experimente online!

Resposta do porto de Dennis.

Urna de polvo mágico
fonte
0

Quarto, 22 bytes

O mesmo cálculo visto em outras respostas.

109876 54 / 3 + 21 - .

Experimente online

mbomb007
fonte
0

C 37 bytes

main(){printf("%d",109876/54+3-21);}

Mesmo tema que muitos presentes.

LambdaBeta
fonte
0

VBA, 15 bytes

?109876\54+3-21

(cálculo descaradamente roubado de Dennis )

SeanC
fonte
0

JavaScript (ES6), 21 bytes

f=

_=>~~(109876/54+3-21)

console.log(f())

Se a "contagem regressiva" for 0, isso poderá ser feito em 19 bytes.

f=
_=>109876/54+3-21|0
console.log(f())

E, como agora é 2017, isso também pode ser feito em 21 bytes:

f=
_=>-~(109876/54+3-21)
console.log(f());

Shaggy
fonte