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


12

En tant que spin-off de mon défi chez Puzzling , votre objectif est de produire 2016.

Règles:

  • Vous devez inclure les numéros 10 9 8 7 6 5 4 3 2 1dans cet ordre. Ils peuvent être utilisés comme des entiers individuels ou concaténés ensemble (comme 1098), mais 10ils ne peuvent pas être séparés 1et 0- aucun caractère ne peut être présent entre les chiffres. Notez que, dans certaines langues, 10peut ne pas représenter réellement le littéral entier 10, ce qui est acceptable.
  • Votre code ne doit pas contenir d'autres nombres ou variables numériques ou constantes Tprédéfinies (donc en Pyth n'est pas autorisé, car il s'agit d'une constante numérique).
  • Vous devez calculer en 2016 utilisant des chiffres. La simple sortie 2016sans effectuer aucune opération sur les nombres requis (par exemple, en décodant une chaîne codée composée uniquement de caractères alphabétiques) n'est pas autorisée. La sortie 2016en morceaux (comme 20, alors 16) n'est pas non plus autorisée; vous devez avoir une seule sortie composée de la valeur numérique 2016.
  • La réponse valide avec le moins d'octets gagne.

3
@nicael Je suis presque sûr que le puzzle a été résolu. Nous avons eu plusieurs de ces défis «insérer des opérateurs pour résoudre une équation», mais ils sont exceptionnellement difficiles à rechercher.
Martin Ender

1
La révision précédente (2) était en fait plus intéressante. Le nouveau est juste en train d'imprimer la chaîne, le calcul a déjà été fait dans votre question déroutante ...
nicael

1
Juste quelques questions sur ce que je peux voir sur la question actuelle: 1) Peut - on calculer 20et 16et de les imprimer un après l'autre ou que la nécessité de nombre calculé pour être 2016 avant l' impression? 2) Les fonctions sont-elles autorisées? 3) La concaténation des chiffres est-elle autorisée? par exemple 1098(je suppose que oui dans les commentaires précédents, mais juste pour confirmer) 4) Est-ce que "calculer 2016 en utilisant des entiers" signifie que nous ne pouvons jamais avoir de flottants nulle part dans une étape intermédiaire? par exemple, puis-je racine carrée un nombre et arrondir vers le bas?
Sp3000

1
5) Que se passe-t-il si j'ai une langue où "10" n'est pas traité comme le chiffre dix, mais plutôt un suivi d'un zéro et qu'il n'y avait aucun moyen de le contourner? Une telle langue est-elle disqualifiée? (exemple de langage: Befunge) 6) Peut-on utiliser une variable numérique prédéfinie à la place de 10, par exemple T987654321?
Sp3000

@ Sp3000 1 n ° 2 n ° 3 Oui. 4 Les flotteurs sont OK tant que vous n'enfreignez aucune autre règle. 5 10doit être inclus afin que vous ayez besoin de gérer cela d'une manière ou d'une autre. 6 Tant qu'il 10apparaît avant T.
rybo111

Réponses:


22

Gelée , 17 15 14 octets

109876:54+3_21

Essayez-le en ligne!

Comment ça fonctionne

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.

8

Hexagonie, 61 octets

Je ne vais pas gagner, mais je voulais juste relever un défi dans Hexagony.

Cela utilise une méthode différente de celle des autres réponses (bien pire). Il prend quelques facteurs de 2016 (2,3,6,7,8) et les multiplie tous ensemble.

Minifié:

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

Non minifié:

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

Explication à venir;


5
" Explication à venir; " Je pense que nous avons une compréhension différente de "bientôt". ; P
Kevin Cruijssen

1
@KevinCruijssen Oups, j'ai complètement oublié cela. ... Et maintenant je ne comprends plus comment ça marche. Génial.
Blue

5

Pyth, 16 octets

+/109876 54-3 21

Effectue une division entière, puis ajoute (3-21).

Essayez-le ici .


4

TI-BASIC, 17 15 octets

int(109876/54-√(321

Cela utilise la méthode de @ nicael.

17 octets:

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

Cette solution de Puzzling peut être directement traduite en TI-BASIC.


1
Également valable dans Japt, et probablement dans quelques autres.
ETHproductions

1
Fonctionne également dans PowerShell et Mathematica (Wolfram), et j'imagine beaucoup, beaucoup d'autres. Et fonctionne probablement dans des dizaines d'autres avec des modifications triviales.
AdmBorkBork

Une belle solution polyglotte
TanMath

Si vous souhaitez utiliser les autres langues, je supprimerai mon wiki communautaire.
Addison Crump

3

Japt, 17 16 octets

Â(109876/54-321q

Je déteste ça 17. Je trouverai probablement une autre solution. YAYZ.

Explication:

  • 321q est une racine carrée de 321.
  • ~~ étages le nombre.

Essayez-le en ligne!


Â== ~~:-)
ETHproductions

109876/54-321¬fest 15 :-D
ETHproductions

@Eth mais f ne fonctionne pas, non?
nicael

Il devrait être corrigé. Mais l'interprète est en panne pour maintenance en ce moment, je vais le récupérer momentanément.
ETHproductions

109876/54-321q)ffonctionne maintenant. L'autre suggestion ne le fait pas.
ETHproductions


3

avant JC, 14

109876/54+3-21

Rien d'excitant ici - emprunte à d'autres réponses.


1
L'équivalent dc 109876 54/3+21-pobtient un score de 16, mais ne garantit pas sa propre réponse.
Toby Speight

2

Haskell, 31 octets

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

Pas le plus court, 10+9*8-7+654*3-21comme on le voit dans d'autres réponses, fonctionne également dans Haskell, mais quelque chose de différent.

Cela crée une liste commençant par 10et 9*8*7+6 = 510, donc le décalage est 500pour les éléments suivants. La liste entière est [10,510,1010,1510,2010,2510 ...]. Nous choisissons l' 4thélément (basé sur l'indice 0), c'est 2010-à- dire et ajoutons 3*2*1 = 6. Voilà.

J'utilise const 6 5 = 6pour me débarrasser de ce 5qui n'est pas nécessaire.


2

Python 2, 20 octets

print 109876/54+3-21

Encore une fois, ce même ennuyeux 2016.(740). Utilise le fait que si vous n'avez pas de nombre décimal dans votre expression, il retourne un entier.


1

> <> (poisson), 18 octets

10987**r65r4*n;321

explication:

multiplie 9 8 et 7 ensemble pour obtenir 504, inverse la pile et l'inverse à nouveau juste avant l'ajout du 4, puis multiplie 504 et 4 pour obtenir 2016. Imprime ensuite le nombre et termine le programme avant les 3 derniers chiffres (je pourrais faire après aussi sans aucune différence, si cela importe sur le plan des règles).


1

Math ++ , 17 octets

_(109876/54)+3-21

En fait, cela s'imprime 2016.0. Mais il n'y a vraiment aucun moyen d'imprimer la chaîne exacte 2016dans cette langue.

La solution TI-BASIC à 17 octets fonctionnerait également ici.


1

Polyglotte, 17 octets

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

Ce code, utilisé pour la première fois dans la réponse TI-BASIC de Thomas Kwa , fonctionne également dans:

  • AppleScript (programme complet)
  • bc (programme complet)
  • Math ++ (expression ou programme complet)
  • Mathematica (fonction, donc non valide)
  • Powershell (programme complet)
  • Japt (programme complet)
  • JavaScript (entrée console, donc non valide) Nécessite une deuxième vérification
  • Perl 5 (fonction, donc non valide). Nécessite une deuxième vérification
  • Haskell (fonction, donc non valide)
  • Python REPL (expression, donc l'environnement REPL est nécessaire pour obtenir la sortie)

1
Et à quoi ça sert?
nicael

@nicael Je --- vais --- je prévois (sauf si Thomas Kwa souhaite également ajouter les autres réponses à la sienne) d'ajouter toutes les réponses qui impliquent cette réponse (sauf TI-BASIC) que je peux trouver. Marqué comme communauté afin que d'autres puissent contribuer.
Addison Crump

1
Pourquoi les remarques "fonction, donc non valable"? Les fonctions sont autorisées par défaut.
nimi

5
Je ne connais pas les autres langages, mais ce 10+9*8-7+654*3-21n'est ni une fonction JavaScript ni une fonction Perl.
Dennis

1
@ Sp3000: Oh ces changements de règles invalidantes ...
nimi



1

PHP, 27 octets

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

(22 octets) était trop ennuyeux,

j'ai donc utilisé 10 à 9 comme numéros séparés:

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

d'autres solutions, principalement avec de petites astuces:

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;

0

Voie lactée 1.6.5 , 28 25 octets

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

Explication

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




0

C 37 octets

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

Même thème que plusieurs présents.



0

JavaScript (ES6), 21 octets

f=

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

console.log(f())

Si le "compte à rebours" passait à 0, cela pourrait se faire en 19 octets.

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

Et, comme c'est maintenant 2017, cela peut aussi se faire en 21 octets:

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.