Imprimer des nombres de 1 à 10

43

Cela peut être un défi très simple, mais je suis surpris que cela n’ait pas encore été fait sur le golf-code:

Imprimer tous les nombres entiers de 1 à 10 inclus dans l'ordre croissant de la sortie standard.

Votre format de sortie peut être celui que votre langue prend en charge. Cela inclut les séparateurs arbitraires (virgules, points-virgules, nouvelles lignes, combinaisons de ceux-ci, etc., mais pas de chiffres), ainsi que les préfixes et les suffixes (similaires [...]). Cependant, vous ne pouvez pas émettre d'autres nombres que 1 à 10. Votre programme ne peut prendre aucune entrée. Les failles standard sont interdites.

C'est du , donc la réponse la plus courte en octets gagne!

Classement

Clashsoft
la source
10
Related (duplicate?)
Luis Mendo
17
Si le seul changement consiste à coder en dur un seul paramètre, il relève de la " modification triviale " et, selon les normes de ce site, est toujours considéré comme une dupe.
Peter Taylor
10
@PeterTaylor L'autre défi a un énorme problème avec les limites entières cependant. La façon dont il est spécifié chaque langage TC qui n'a pas d'entiers 64 bits doit les implémenter. (Et cela concerne pas mal de langues.)
Martin Ender
17
@xnor Franchement, je préférerais fermer l'autre défi en tant que duplicata de celui-ci. L'exigence le gâte à peu près.
Dennis
9
Je ne peux pas croire que chacune des (actuellement) 71 réponses suppose que la base devrait être décimale…
Skippy le Grand Gourou

Réponses:

69

C, 36 octets

main(i){while(printf("%d ",i++)<3);}

Cela fonctionne car la boucle se termine après le premier nombre à 2 chiffres.

Xsot
la source
1
Il n'est pas question de pouvoir transmettre des paramètres à la fonction.
Ash Burlaczenko
10
@AshBurlaczenko De quoi parlez-vous? C'est une technique standard en golf pour initialiser un int à 1. Vous n'avez pas besoin de passer d'arguments en ligne de commande. En fait, le programme produira une sortie incorrecte.
Xsot
6
@AshBurlaczenko Par consensus, nous avons convenu que les programmes peuvent supposer qu'ils ne seront pas appelés avec des entrées inutiles (dans ce cas, aucun argument de ligne de commande supplémentaire, au-delà du programme lui-même). Cela signifie iici sera toujours 1 lorsque ce programme est exécuté. Vouliez-vous dire autre chose?
FryAmTheEggman le
2
Désolé, je n'ai pas écrit C, mais je suppose que sa valeur par défaut serait 0 comme dans toutes les langues que j'ai utilisées.
Ash Burlaczenko
17
@AshBurlaczenko En C, le premier argument de main est le nombre d'arguments en ligne de commande (y compris le nom de l'exécutable lui-même). Comme aucun argument supplémentaire n'est passé, ce nombre est 1. Le deuxième argument de main est la liste actuelle des arguments de ligne de commande, mais cet argument est ignoré dans ce programme.
Chris Bouchard
45

HTML, 44 octets

<ol><li><li><li><li><li><li><li><li><li><li>

C'est plus long que de coder en dur la sortie, mais c'est plus intéressant de cette façon. Il crée une liste ordonnée ( <ol>) avec dix éléments de liste vides ( <li>). Par défaut, les listes ordonnées sont délimitées par des nombres décimaux commençant par 1 et un point.

HTML5 est très indulgent en ce qui concerne les balises non fermées, il ferme donc les libalises implicitement.

NinjaBearMonkey
la source
5
+1 pour avoir abusé du pardon de HTML5 (?).
HyperNeutrino
1
À sang froid. J'aime cela.
ricdesi
1
En fait, NinjaBearMonkey et @HyperNeutrino, ce n'est pas du "pardon" en soi; HTML5 est assez explicite sur les balises qui peuvent rester non fermées. C'est juste que les listes et les éléments de liste sont deux qui sont.
Kryan
43

Bash, 12 caractères

echo {1..10}

Échantillon échantillon:

bash-4.3$ echo {1..10}
1 2 3 4 5 6 7 8 9 10

Bash + coreutils, 10 caractères

(J'essaie juste d'être drôle et de l'utiliser ': No such file or directory↵ls: cannot access 'comme séparateur.)

ls {1..10}

Échantillon échantillon:

bash-4.3$ ls {1..10}
ls: cannot access '1': No such file or directory
ls: cannot access '2': No such file or directory
ls: cannot access '3': No such file or directory
ls: cannot access '4': No such file or directory
ls: cannot access '5': No such file or directory
ls: cannot access '6': No such file or directory
ls: cannot access '7': No such file or directory
ls: cannot access '8': No such file or directory
ls: cannot access '9': No such file or directory
ls: cannot access '10': No such file or directory

Bash + coreutils, 6 caractères

(J'essaie juste d'être ennuyeux. Ou pas seulement d'essayer…)

seq 10

Échantillon échantillon:

bash-4.3$ seq 10
1
2
3
4
5
6
7
8
9
10
homme au travail
la source
7
Le dernier est juste seq / coreutils, bash non impliqué.
Hyde
1
@hyde: Sans bash, l'appel à seq ne serait pas possible, n'est-ce pas?
Mega Man
Dans ma vision, si nous laissons de côté bash, alors seqserait l’interprète. Mais alors 10est un programme valide en langue "seq"?
Manatwork
N'essayez jamais ceci sur votre console: echo {1..1000000000} Si vous êtes curieux, faites-le à vos risques et périls.
Brain90
@ Brain90, il n'y a pas de danger sur ma pauvre machine à 8 Go de RAM. ;) “Bash: expansion de l'accolade: échec de l'allocation de mémoire pour 1000000000 éléments”. Au moins avec bash4.3.46.
Manatwork
27

Gelée, 2 octets

⁵R

Explication

⁵  Return the fifth command line argument or 10
 R Range
   Implicit output
TuxCrafting
la source
7
⁵R, deux octets
Luis Mendo
14
Pourquoi
diable
14
@ AndreïKostyrka Parce que Dennis
TuxCrafting
1
Y at-il un encodage où est juste un octet? Comme il s'agit de 3 octets dans UTF-8, la longueur du programme doit être de 4 octets.
Radovan Garabík
2
@ RadovanGarabík Jelly utilise sa propre page de codes
TuxCrafting le
20

Brainfuck, 58 octets

-[----->+>+<<]>--<+++++[<++<++>>-]<<-[->>>.+<<.<]>>>>--.-.

Essayez-le en ligne!

Loovjo
la source
1
Battez-moi dessus, et plus court aussi, postera le mien de toute façon car je ne pense pas que nous ayons utilisé le même truc. J'ai mon +1 :)
Katenkyo
J'étais proche avec 67 octets, mais pas assez:++++++[>++++++++<-]>>>++++++++++[-<+<<+>>>]<[-<.+<.>>]<<-[>-<-]>.-.
Julian Lachniet
18

05AB1E , 2 octets

Code:

TL

Explication:

T   # Constant for 10
 L  # Range

Essayez-le en ligne! .

Adnan
la source
4
Quand j'ai vu cela, j'ai ressenti le besoin de dire "tl; dr". : P +1, au fait.
HyperNeutrino
16

LOLCODE, 79 octets

IM IN YR l UPPIN YR v TIL BOTH SAEM v AN 10
VISIBLE SUM OF v AN 1
IM OUTTA YR l

Ce code peut nécessiter quelques ajustements en fonction du compilateur que vous utilisez. Certains veulent que vous ajoutiez HAI / KTHXBYE, d'autres veulent que vous déclariez la variable à l'avance. Un compilateur se casse si le nom de votre boucle est inférieur à deux caractères, même si le nom de la boucle n'est jamais utilisé.


la source
15

CJam, 6 5 octets

A,:)`

1 octet économisé grâce à Luis Mendo

Sortie: [1 2 3 4 5 6 7 8 9 10]

Explication

A,      e# Push a list from 0 to 9.
  :)    e# Increment all values.
    `   e# Stringify the list.

Essayez-le en ligne!

Loovjo
la source
3
j'aime le smileyface. (N'y a-t-il pas une erreur dans votre explication: A crée une liste de 0 à 9)
KarlKastor
14

R, 4 octets

2:10

Le ":" est probablement l'une des commandes R les plus utilisées. Amélioration de Barranka dans les commentaires.

Science de l'oubli
la source
2
Devraient-ils exiger l’impression d’une chaîne sans renvoyer de vecteur cat(1:10)?
Andreï Kostyrka
Y a-t-il un espace blanc de premier plan?
Clashsoft
9
Étant donné que la sortie est [1] 1 2 3 4 5 6 7 8 9 10, ce serait peut-être mieux 2:10, ce qui produira[1] 2 3 4 5 6 7 8 9 10
Barranka
@Clashsoft, c'était une erreur - merci. Et oui, Barranka, bon point - voté.
Forgottenscience
13

Ruby, 8 octets

Séparé par des nouvelles lignes.

p *1..10
Valeur d'encre
la source
* Séparé par des nouvelles lignes.
David Conrad
Vous pouvez le faire?
dkudriavtsev
@DmitryKudriavtsev oui, l'étoile provoque la décomposition du code p 1,2,3,4,5,6,7,8,9,10et les virgules les pséparent par des retours à la ligne.
Valeur d'encre
D'ACCORD. Je ne pensais pas que l'opérateur avait une priorité inférieure à la plage.
dkudriavtsev
11

Pyth, 2 octets

ST

La première fois que j'ai utilisé un langage de golf pour répondre!

Explication:

S    1-indexed range. [1, 2, ... A].
 T   Variable. Initialized to 10. (Ten)
     Implicitly printed.
charbon de bois
la source
Ninja'd par secondes: /
TuxCrafting
11

Brainfuck, 41 octets

+[[-<]>->>->-<-]<<[-<<+<<.+>>>>>.<]<<+.-.

Sortie

1 2 3 4 5 6 7 8 9 10

Essayez-le en ligne .

primo
la source
1
Agréable! - - - - -
Leaky Nun
10

En fait, 9 octets

19`;1+`na

Essayez-le ici!

Explication:

19`;1+`na

1           Push 1 to stack
 9          Push 9 to stack
  `;1+`     Push Function inside ` to stack
   ;        Push top element to stack
    1+      Add 1 to top element
       n    Run function x times (9 times)
        a   Invert stack
Pansement
la source
9
Bienvenue dans Programmation Puzzles et Code Golf!
Adnan
10

Mathematica - 13 octets

Echo@Range@10

Sauvegardé 4 octets grâce à MartinEnder !

Sortie: >> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

Yytsi
la source
10

JavaScript (ES6), 29 octets

alert([...`${1e11/81^14}`]+0)

Sorties 1,2,3,4,5,6,7,8,9,10. Ce n’est pas la réponse la plus courte, mais j’ai pensé que c’était un calcul amusant.

Neil
la source
pourquoi pasalert([...'1'+234567891]+0)
edc65
2
@ edc65 a) ce n'est pas aussi amusant b) ce n'est pas aussi court que la réponse JavaScript précédemment publiée c) ce n'est même pas aussi court que alert([...'1234567891']+0).
Neil
9

MATL , 3 octets

10:

Essayez-le en ligne!

Le code génère le vecteur [1 2 ... 10]et l'affiche implicitement, les nombres étant séparés par des espaces.

Luis Mendo
la source
8

DC , 12 octets

... un peu méchant maintenant ...

[zzpA>L]dsLx

Déroulé:

[   # start string constant
z   # push stack length (0 on 1st cycle)
z   # push stack length (1 on 1st cycle)
p   # print top of stack
A>L # if 10(decimal) < tos: execute L
]   # end string constant, push it
d   # duplicate the string
sL  # store a copy in L
x   # execute tos (which is the other string copy)

L'une des opérations z(longueur de la pile) n'a pas d'opération correspondante qui la extrait de la pile. De cette façon, la pile grandit d'une unité à chaque itération. Ceci est utilisé comme compteur de boucle.

Cette boucle commence par une pile vide, de sorte que la 1ère zinsère 0la 1ère itération afin que l'impression soit effectuée après la 2ème, zce qui correspond à la duplication du résultat de 1+ddans la version ci-dessous. De cette façon, la comparaison doit être testée plus grande 10qu'ici plutôt que bigger than 11ci - dessous.


DC , 14 octets

Juste en avant ...

1[p1+dB>L]dsLx

Déroulé:

1   # push 1
[   # start string constant
p   # print top of stack
1+  # add 1 to tos
d   # push tos (duplicate)
B>L # if 11(decimal) < tos: execute L
]   # end string constant, push it
d   # duplicate the string
sL  # store a copy in L
x   # execute tos (which is the other string copy)

la source
J'aimerais que vous expliquiez ceci = (
Evan Carroll
@EvanCarroll - Écrire des dcprogrammes est plus facile que d'expliquer. Mais j'ai essayé ... ;-)
7

> <> , 13 octets

01+:a)?;:nao!

Explication:

01+:a)?;:nao!

0                 push initial value of n on the stack
 1+               increments n
   :              duplicates n on the stack
    a             push 10 on the stack
     )            pops n and 10 of the stack, push n>10 on the stack
      ?;          if n>10, stops program execution
        :n        duplicates n on the stack in order to display it
          ao      display 10 (x0A, linefeed)
            !     skips the next instruction, which since ><> loops is the push 0

Vous pouvez le voir en action sur l' interprète en ligne .

Aaron
la source
Pourriez-vous s'il vous plaît ajouter une explication?
Clashsoft
1
Exécutez le programme nao!
Cyoce
@Cyoce> <> est super pour écrire des morceaux de code enthousiastes, j'ai cette réponse du vérificateur de vitesse de moto dans la même veine;)
Aaron
6

J, 6 octets

1+i.10

Sortie: 1 2 3 4 5 6 7 8 9 10

Explication

1+       NB. Add one to...
  i.10   NB. A range from 0 to 9.
Loovjo
la source
Ma pensée était >:i.10, mais c'est la même chose.
Danois
6

Haskell, 17 octets

main=print[1..10]

Sorties [1,2,3,4,5,6,7,8,9,10].

C. Quilley
la source
Je suis un peu confus ici ... Je suis presque certain que cela devrait l'être [1..10]. Je n'ai pas accès à un compilateur haskell, mais je revérifierai le lendemain matin.
Zwei
Les plages de @Zwei n'incluent pas leur limite supérieure en Haskell.
C. Quilley
1
@ C.Quilley Ils le font totalement. Vous pensez peut-être à Python.
xnor
Hein, j'étais sûr d'avoir testé ce code. Toutes mes excuses pour l'affirmation antérieure.
C. Quilley
1
Je ne pense pas que vous ayez besoin de la partie principale = le reste a le type d'un programme haskell, IO (). Corrigez-moi s'il y a une décision spécifique contre cela.
Lazersmoke
6

Fuzzy Octo Guacamole, 7 octets

1.25*$:

Multiplie 2*5, prend la gamme de cela et 1, et imprime la pile entière.

1.25*$:
1.      # Push 1 to the stack and switch stacks
  25*   # Push 10 to the stack
     $  # Push every number in the inclusive range on the top of inactive stack and top of active stack ([1,2,3,4,5,6,7,8,9,10])
      : # Print the stack, which is a list containing the numbers.
Rɪᴋᴇʀ
la source
6

PowerShell, 5 octets

1..10

Crée une plage dynamique avec l' ..opérateur de 1to 10, puis ce tableau est laissé sur le pipeline. La sortie est implicite. La .ToString()méthode par défaut d'un tableau est newline, elle sera donc séparée par une nouvelle ligne lorsqu'elle sera exécutée dans un shell propre.

AdmBorkBork
la source
6

Java 7, 53 51 52 octets (boucle)

void l(){for(int i=0;++i<11;)System.out.println(i);}

Alternative 51 octets (codé en dur est plus court .., mais considéré comme une échappatoire par défaut , donc non autorisé):

void h(){System.out.print("1 2 3 4 5 6 7 8 9 10");}

Alternative 54 octets (récursif):

int i=1;void r(){System.out.println(i);if(i++<10)r();}

Code non testé et de test pour les trois:

Essayez ici.

class Main{
  static void h(){
    System.out.print("1 2 3 4 5 6 7 8 9 10");
  }      

  static void l(){
    for(int i=0; ++i < 11;){
      System.out.println(i);
    }
  }

  static int i = 1;
  static void r(){
    System.out.println(i);
    if(i++ < 10){
      r();
    }
  }

  public static void main(String[] a){
    h();
    System.out.println();
    l();
    System.out.println();
    r();
  }
}

EDIT: Pour les amusements funèbres: Comme le souligne correctement @SkippyLeGrandGourou , la base des 1 à 10 n’est pas spécifiée dans la question, donc voici du code Java (non codé par golf) qui affiche 1 à 10 dans les bases 2 à dix:

Essayez ici.

BASE-2: 1 10 
BASE-3: 1 2 10 
BASE-4: 1 2 3 10 
BASE-5: 1 2 3 4 10 
BASE-6: 1 2 3 4 5 10 
BASE-7: 1 2 3 4 5 6 10 
BASE-8: 1 2 3 4 5 6 7 10 
BASE-9: 1 2 3 4 5 6 7 8 10 
BASE-10: 1 2 3 4 5 6 7 8 9 10 
Kevin Cruijssen
la source
La boucle peut être for(int i=1;i<11;)System.out.println(i++), sauve un octet.
Clashsoft
@ zyabin101 Modification de l'ordre afin que la réponse codée en dur soit non concurrente. Toujours laissé dans la réponse cependant, car il est assez drôle (et triste) qui est codé en dur le chemin le plus court pour imprimer 1-10 en Java 7 ..
Kevin Cruijssen
2
@ zyabin101 Sauf lorsque la question est étiquetée kolmogorov-complex .
Neil
@ Neil Oh, c'est vrai. o_o
user48538
1
Java 8 est clairement le gagnant ici grâce à lambdas! ()->java.util.stream.IntStream.range(1,11).forEach(System.out::println). Pourquoi tu dis que c'est plus long? C'est Java 8 ... Java 8 est plus court par défaut! Je n'ai même pas mis d'accolades avant et après le code! Je peux même compter jusqu'à 98 sans avoir un personnage supplémentaire! Voir? Règles de Java 8!
Olivier Grégoire
6

Perl 6, 12 octets

say @(1..10)

Le @()est nécessaire pour convertir en tableau

Solution alternative:

say @(^10+1)

Construit une plage [0,10) puis en ajoute une, puis la convertit en tableau.

Ven
la source
Pour Perl 5.10, 14 octets et presque les suivants:say for(1..10)
Paul Picard
@PaulPicard le poster! Perl 5 est une langue différente.
Ven.
Pouvez-vous supprimer l'espace pour say@(1..10)?
Cyoce
@ Cyoce hélas non, c'est une erreur.
Ven
10 octets:say 1...10
nwellnhof il y a
5

Python2 - 19 17 octets

print range(1,11)

Sauvé 1 octet, merci à KevinLau - pas Kenny !

Sortie: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Yytsi
la source
Utiliser à la rangeplace de xrange, en supposant que Python 2. En fait, cette version actuelle ne semble pas fonctionner sur ma machine, ni dans la version Python.
Valeur d'encre
@ KevinLau-notKenny J'aurais pu jurer que j'essayais cela et que je n'avais rien à STDOUT. Merci!
Yytsi
Important: ce n'est que Python 2
Mega Man
1
@ABcDexter J'ai vérifié, très gentil! La raison pour laquelle je n'ai pas utilisé Python3, c'est parce que j'ai été obligé de convertir l' rangeobjet qui renvoie un itérateur dans une liste.
Yytsi
1
@ TuukkaX Oui, exactement. Je vais essayer d'autres langues aussi. Merci :).
ABcDexter
5

Vim, 12 octets

i1<Esc>qqYp<C-a>q8@q

Les sorties

1
2
3
4
5
6
7
8
9
10

Explication:

i1<Esc>qqYp<C-a>q8@qZZ
       qqYp<C-a>q      -- Macro q: duplicate line and increment (6)
i1<Esc>                -- Insert 1 (3)
                 8@q   -- Run macro q 8 times (3)

Testé sur Neovim 0.1.4, qui à ma connaissance est compatible avec la frappe au clavier avec Vim.

Zwei
la source
Agréable. Je suis venu avec iYp<C-v><C-a>1<Esc>d^9@-ZZ. Même nombre d'octets.
dimanche
3
Plus court . :)
DJMcMayhem
5

MarioLANG , 34 27 25 octets

+<
:"
+
:
+
:
+
:
+
:!
=#

Essayez-le en ligne!

Merci à Jo King pour -7 -9 octets!

code:

Mario tombe, incrémentant et disant son numéro cinq fois, puis il monte dans l'ascenseur, redescend et retombe, incrémentant et répétant son numéro cinq fois. Puis il marche à gauche et tombe du code.

14 octets plus court que le moyen facile:

39 octets

+:+:+:+:+:+:+:+:+:+
==================:

Essayez-le en ligne!

Dorian
la source
Merci. Parfois, vous ne pouvez pas voir la forêt pour les arbres.
Dorian le
4

Groovy, 11 caractères

print 1..10

Échantillon échantillon:

bash-4.3$ groovy -e 'print 1..10'
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
homme au travail
la source