Zahlen von 1 bis 10 drucken


42

Dies mag eine sehr einfache Herausforderung sein, aber ich bin überrascht, dass sie noch nicht für Code-Golf durchgeführt wurde:

Geben Sie alle Ganzzahlen von 1 bis einschließlich 10 in aufsteigender Reihenfolge zur Standardausgabe aus.

Ihr Ausgabeformat kann das sein, was Ihre Sprache unterstützt. Dies schließt beliebige Trennzeichen (Kommas, Semikolons, Zeilenumbrüche, Kombinationen davon usw., aber keine Ziffern) sowie Präfixe und Postfixe (wie [...]) ein. Sie dürfen jedoch keine anderen Zahlen als 1 bis 10 ausgeben. Ihr Programm nimmt möglicherweise keine Eingaben vor. Standardlücken sind nicht zulässig.

Das ist , also gewinnt die kürzeste Antwort in Bytes!

Bestenliste


10
Related (duplicate?)
Luis Mendo

17
Wenn die einzige Änderung darin besteht, einen einzelnen Parameter fest zu codieren, dann fällt dies unter das Banner der " trivialen Änderung " und wird nach den Maßstäben dieser Site immer noch als Betrug gewertet.
Peter Taylor

10
@PeterTaylor Die andere Herausforderung hat jedoch ein großes Problem mit den Ganzzahlgrenzen. Die Art und Weise, wie es angegeben wird, muss jede TC-Sprache, die keine 64-Bit-Ganzzahlen hat, diese implementieren. (Und das betrifft ziemlich viele Sprachen.)
Martin Ender

17
@xnor Ganz ehrlich, ich würde die andere Herausforderung lieber als Duplikat dieser schließen. Die Anforderung ruiniert es so ziemlich.
Dennis

9
Ich kann nicht glauben, dass jede der (derzeit) 71 Antworten annimmt, dass die Basis dezimal sein sollte…
Skippy le Grand Gourou

Antworten:


68

C, 36 Bytes

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

Dies funktioniert, weil die Schleife nach der ersten zweistelligen Nummer endet.


1
Es wird nicht erwähnt, dass Parameter an die Funktion übergeben werden können.
Ash Burlaczenko

10
@AshBurlaczenko Worüber sprichst du? Dies ist eine Standardtechnik beim Golfen, um ein int auf 1 zu initialisieren. Sie müssen keine Befehlszeilenargumente übergeben. In der Tat führt dies dazu, dass das Programm die falsche Ausgabe erzeugt.
Xsot

6
@AshBurlaczenko Durch Konsens haben wir vereinbart , dass die Programme annehmen können sie nicht mit unnötigem Eingang (in diesem Fall keine zusätzlichen Befehlszeilenargumente, über das Programm selbst) aufgerufen werden. Das bedeutet, dass ihier immer 1 ist, wenn dieses Programm ausgeführt wird. Meinten Sie etwas anderes?
FryAmTheEggman

2
Entschuldigung, ich habe kein C geschrieben, aber angenommen, dass der Standardwert 0 ist, wie in jeder Sprache, die ich verwendet habe.
Ash Burlaczenko

16
@AshBurlaczenko In C ist das erste Argument für main die Anzahl der Befehlszeilenargumente (einschließlich des ausführbaren Namens selbst). Da keine zusätzlichen Argumente übergeben werden, ist diese Anzahl 1. Das zweite Argument für main ist die tatsächliche Liste der Befehlszeilenargumente, dieses Argument wird jedoch in diesem Programm ignoriert.
Chris Bouchard

43

HTML, 44 Bytes

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

Dies ist länger als das Hardcodieren der Ausgabe, aber auf diese Weise ist es interessanter. Es wird eine geordnete Liste ( <ol>) mit zehn leeren Listenelementen ( <li>) erstellt. Standardmäßig werden sortierte Listen durch Dezimalzahlen begrenzt, die mit 1 und einem Punkt beginnen.

HTML5 ist in Bezug auf nicht geschlossene Tags sehr nachsichtig, daher werden die liTags implizit geschlossen.


4
+1 für den Missbrauch der Vergebung von HTML5 (?).
HyperNeutrino

1
Kaltblütig. Ich liebe es.
Ricdesi

Eigentlich, NinjaBearMonkey und @HyperNeutrino, ist dies per se keine „Vergebung“; HTML5 gibt ziemlich genau an, welche Tags nicht geschlossen werden dürfen. Es ist nur so, dass Listen und Listenelemente zwei sind.
KRyan

41

Bash, 12 Zeichen

echo {1..10}

Probelauf:

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

Bash + Coreutils, 10 Zeichen

(Ich versuche nur lustig zu sein und ': No such file or directory↵ls: cannot access 'als Trennzeichen zu verwenden.)

ls {1..10}

Probelauf:

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 Zeichen

(Ich versuche nur, langweilig zu sein. Oder ich versuche nicht nur ...)

seq 10

Probelauf:

bash-4.3$ seq 10
1
2
3
4
5
6
7
8
9
10

6
Letzteres ist nur seq / coreutils, bash nicht beteiligt.
Hyde

1
@hyde: Ohne bash wäre der Aufruf von seq nicht möglich, oder?
Mega Man

Wenn wir in meiner Vision weglassen bash, seqwäre dies der Dolmetscher. Aber ist dann 10ein gültiges Programm in der Sprache "seq"?
Manatwork

Versuchen Sie dies niemals an Ihrer Konsole: echo {1..1000000000} Wenn Sie neugierig sind, gehen Sie Ihr eigenes Risiko ein.
Brain90

@ Brain90, auf meinem armen 8Gb RAM-Rechner besteht keine Gefahr. ;) “Bash: Klammererweiterung: Speicher für 1000000000 Elemente konnte nicht zugewiesen werden”. Zumindest mit bash4.3.46.
Manatwork

24

Gelee, 2 Bytes

⁵R

Erläuterung

⁵  Return the fifth command line argument or 10
 R Range
   Implicit output

7
⁵R, zwei Bytes
Luis Mendo

13
Warum um alles in der Welt würde jemand eine Sprache erfinden, in der ein Befehl entweder das fünfte Argument oder die ganze Zahl 10 zurückgibt?
Andreï Kostyrka

14
@ AndreïKostyrka Weil Dennis
TuxCrafting

1
Gibt es eine Kodierung mit nur einem Byte? Da es sich in UTF-8 um 3 Bytes handelt, sollte die Länge des Programms 4 Bytes betragen.
Radovan Garabík

2
@ RadovanGarabík Jelly verwendet eine eigene Codepage
TuxCrafting

20

Brainfuck, 58 Bytes

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

Probieren Sie es online!


1
Schlagen Sie mich zu, und kürzer auch, wird meins sowieso bekannt geben, da ich nicht denke, dass wir den gleichen Trick verwendet haben. Habe meine +1 :)
Katenkyo

Ich war nah mit 67 Bytes, aber nicht nah genug:++++++[>++++++++<-]>>>++++++++++[-<+<<+>>>]<[-<.+<.>>]<<-[>-<-]>.-.
Julian Lachniet


16

LOLCODE, 79 Bytes

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

Dieser Code muss je nach verwendetem Compiler möglicherweise angepasst werden. Einige möchten, dass Sie HAI / KTHXBYE hinzufügen, andere möchten, dass Sie die Variable im Voraus deklarieren. Ein Compiler bricht ab, wenn Ihr Schleifenname kürzer als zwei Zeichen ist, obwohl der Schleifenname nie verwendet wird.


15

CJam, 6 5 Bytes

A,:)`

Dank Luis Mendo 1 Byte gespart

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

Erklärung:

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

Probieren Sie es online!


3
Ich mag das Smiley. (Gibt es keinen Fehler in Ihrer Erklärung: A, erstellt eine Liste von 0 bis 9)
KarlKastor

14

R, 4 Bytes

2:10

Das ":" ist wahrscheinlich einer der am häufigsten verwendeten R-Befehle. Verbesserung von Barranka in Kommentaren.


2
Sollte es erforderlich sein, einen String zu drucken, ohne einen Vektor zurückzugeben, ziehen Sie dies in Betracht cat(1:10).
Andreï Kostyrka

Gibt es ein führendes Leerzeichen?
Clashsoft

9
Angesichts der Tatsache, dass die Ausgabe ist [1] 1 2 3 4 5 6 7 8 9 10, wäre es vielleicht besser 2:10, die Ausgabe[1] 2 3 4 5 6 7 8 9 10
Barranka

@Clashsoft, das war ein Fehler - danke. Und ja, Barranka, das ist ein guter Punkt.
Forgottencience

13

Ruby, 8 Bytes

Durch Zeilenumbrüche getrennt.

p *1..10

* Durch Zeilenumbrüche getrennt.
David Conrad

Du kannst das?
Dkudriavtsev

@DmitryKudriavtsev Ja, der Stern bewirkt, dass der Code in Zeilenumbrüche zerfällt p 1,2,3,4,5,6,7,8,9,10und durch Kommas pgetrennt wird.
Wert Tinte

OKAY. Ich hätte nicht gedacht, dass der Operator eine niedrigere Priorität als der Bereich hat.
Dkudriavtsev

11

Pyth, 2 Bytes

ST

Zum ersten Mal habe ich eine Golfsprache verwendet, um zu antworten!

Erläuterung:

S    1-indexed range. [1, 2, ... A].
 T   Variable. Initialized to 10. (Ten)
     Implicitly printed.

Sekundenschnell: /
TuxCrafting


10

Eigentlich 9 Bytes

19`;1+`na

Probieren Sie es hier aus!

Erläuterung:

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

9
Willkommen bei Programming Puzzles und Code Golf!
Adnan

10

Mathematica - 13 Bytes

Echo@Range@10

4 Bytes gespart dank MartinEnder !

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


10

JavaScript (ES6), 29 Byte

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

Ausgänge 1,2,3,4,5,6,7,8,9,10. Nicht die kürzeste Antwort, aber ich dachte, dass es eine lustige Berechnung war.


warum nichtalert([...'1'+234567891]+0)
edc65

2
@ edc65 a) es macht nicht so viel Spaß b) es ist nicht so kurz wie die zuvor gepostete JavaScript-Antwort c) es ist nicht einmal so kurz wie alert([...'1234567891']+0).
Neil


8

DC , 12 Bytes

... ein bisschen gemein jetzt ...

[zzpA>L]dsLx

Abgerollt:

[   # 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)

Eine der zOperationen (Push-Stack-Länge) hat keine entsprechende Operation, die sie vom Stapel nimmt. Auf diese Weise wächst der Stapel mit jeder Iteration um eins. Dies wird als Schleifenzähler missbraucht.

Diese Schleife beginnt mit einem leeren Stapel, also zdrückt der 1. 0in der 1. Iteration, so dass der Druck nach dem 2. erfolgt z, was dem Duplizieren des Ergebnisses von 1+din der folgenden Version entspricht. Auf diese Weise muss der Vergleich auf größer als 10hier und nicht auf bigger than 11unten getestet werden.


DC , 14 Bytes

Einfach geradeaus ...

1[p1+dB>L]dsLx

Abgerollt:

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)

Ich wünschte, Sie würden diese erklären = (
Evan Carroll

@EvanCarroll - Das Schreiben von dcProgrammen ist einfacher als das Erklären. Aber ich habe es versucht ... ;-)
yeti

7

> <> , 13 Bytes

01+:a)?;:nao!

Erklärung:

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

Sie können es im Online-Dolmetscher in Aktion sehen .


Könnten Sie bitte eine Erklärung hinzufügen?
Clashsoft

1
Führen Sie das Programm nao!
Cyoce

@Cyoce> <> ist großartig, um begeisterte Teile des Codes zu schreiben, ich habe diese Antwort auf die Motorrad-Gangkontrolle in der gleichen Weise erhalten;)
Aaron


6

J, 6 Bytes

1+i.10

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

Erklärung:

1+       NB. Add one to...
  i.10   NB. A range from 0 to 9.

Mein Gedanke war >:i.10, aber das ist das gleiche.
Däne

6

Haskell, 17 Bytes

main=print[1..10]

Ausgänge [1,2,3,4,5,6,7,8,9,10].


Ich bin hier etwas verwirrt ... Ich bin mir fast sicher, dass es so sein sollte [1..10]. Ich habe keinen Zugriff auf einen Haskell-Compiler, aber ich werde es am Morgen noch einmal überprüfen.
Zwei

@Zwei Ranges enthalten in Haskell nicht die Obergrenze.
C. Quilley

1
@ C.Quilley Das machen sie total. Sie könnten an Python denken.
xnor

Ich war mir sicher, dass ich diesen Code getestet hatte. Entschuldigung für die frühere Behauptung.
C. Quilley

1
Ich glaube nicht, dass Sie den Hauptteil brauchen; Der Rest hat den Typ eines Hash-Programms, IO (). Korrigieren Sie mich, wenn es eine spezielle Regelung gibt.
Lazersmoke

6

Fuzzy Octo Guacamole, 7 Bytes

1.25*$:

Multipliziert 2*5, nimmt den Bereich von und 1und druckt den gesamten Stapel.

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.

6

PowerShell, 5 Byte

1..10

Erstellt einen dynamischen Bereich mit dem ..Operator von 1bis 10, und dieses Array verbleibt in der Pipeline. Die Ausgabe ist implizit. Die Standardmethode .ToString()eines Arrays ist newline, daher wird diese Methode bei der Ausführung in einer sauberen Shell durch neue Zeilen getrennt.


6

Java 7, 53 51 52 Bytes (Schleife)

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

Alternative 51 Bytes (fest codiert ist kürzer, wird aber als Standardlücke angesehen , ist also nicht erlaubt):

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

Alternative 54 Bytes (rekursiv):

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

Ungolfed & Testcode für alle drei:

Probieren Sie es hier aus.

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: Für Funsies: Wie von @SkippyLeGrandGourou richtig herausgestellt , ist die Basis der 1 bis 10 in der Frage nicht spezifiziert, daher hier Java-Code (ohne Code-Golf), der 1 bis 10 in den Basen 2 bis 10 ausgibt 10:

Probieren Sie es hier aus.

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 

Schleife kann sein for(int i=1;i<11;)System.out.println(i++), spart ein Byte.
Clashsoft

@ zyabin101 Die Reihenfolge wurde geändert, sodass die fest codierte Antwort nicht konkurrierend ist. Habe es trotzdem in der Antwort gelassen, da es ziemlich lustig (und traurig) ist, dass
hartcodiert

2
@ zyabin101 Außer wenn die Frage kolmogorov-Komplexität markiert ist .
Neil

@ Neil Oh, richtig. o_o
user48538

1
Java 8 ist hier dank Lambdas der klare Gewinner! ()->java.util.stream.IntStream.range(1,11).forEach(System.out::println). Warum sagst du, es ist länger? Es ist Java 8 ... Java 8 ist standardmäßig kürzer! Ich habe nicht einmal geschweifte Klammern vor und nach dem Code gesetzt! Ich kann sogar bis 98 zählen, ohne einen zusätzlichen Charakter zu bekommen! Sehen? Java 8 Regeln!
Olivier Grégoire

6

Perl 6, 12 Bytes

say @(1..10)

Das @()wird benötigt, um in ein Array zu konvertieren

Alternative Lösung:

say @(^10+1)

Erstellt einen Bereich [0,10], fügt dann einen hinzu und konvertiert dann in ein Array.


Für Perl 5.10, 14 Bytes und fast wie bei Ihnen:say for(1..10)
Paul Picard

@PaulPicard poste es! Perl 5 ist eine andere Sprache.
Ven

Können Sie den Raum für entfernen say@(1..10)?
Cyoce

@Cyoce leider nein, es ist ein Fehler.
Ven

5

Python2 - 19 17 Bytes

print range(1,11)

Dank KevinLau 1 Byte gespeichert - nicht Kenny !

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


Verwenden Sie rangeanstelle von xrangePython 2. Tatsächlich scheint diese aktuelle Version auf meinem Computer in beiden Python-Versionen nicht zu funktionieren.
Value Ink

@ KevinLau-notKenny Ich hätte schwören können, dass ich das ausprobiert und nichts zu STDOUT bekommen habe. Vielen Dank!
Yytsi

Wichtig: Es ist nur Python 2
Mega Man

1
@ABcDexter Ich habe es ausprobiert, sehr schön! Der Grund, warum ich Python3 nicht verwendet habe, war, dass ich gezwungen war, das rangeObjekt, das einen Iterator zurückgibt, in eine Liste umzuwandeln .
Yytsi

1
@ TuukkaX Ja, genau. Ich werde auch einige andere Sprachen ausprobieren. Vielen Dank :).
ABcDexter

5

Vim, 12 Bytes

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

Ausgänge

1
2
3
4
5
6
7
8
9
10

Erläuterung:

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)

Getestet auf Neovim 0.1.4, das meines Wissens mit Vim kompatibel ist.


Nett. Ich habe es mir ausgedacht iYp<C-v><C-a>1<Esc>d^9@-ZZ. Gleiche Byteanzahl.
Primo



4

Groovy, 11 Zeichen

print 1..10

Probelauf:

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

4

JavaScript, 25 24 Bytes

for(i=1;i<11;)alert(i++)

1
Willkommen bei PPCG! Ich denke, Sie können ein Byte speichern, indem Sie tun alert(i++)(und das andere entfernen i++).
Martin Ender

Schade, dass in der Frage festgelegt ist, dass die Reihenfolge aufsteigend sein muss, andernfalls hätten Sie ein Byte speichern können, indem Sie eine dekrementierende while-Schleife anstelle der for-Schleife verwenden i=10;while(i)alert(i--).
Kamoroso94

Muss der Code nicht in eine Funktion eingebettet sein?
ericw31415

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.