Stampa numeri da 1 a 10


43

Questa potrebbe essere una sfida molto semplice, ma sono sorpreso che non sia stato ancora fatto su code-golf:

Stampa tutti i numeri interi da 1 a 10 inclusi in ordine crescente sull'output standard.

Il formato di output può essere qualunque sia supportato dalla tua lingua. Ciò include separatori arbitrari (virgole, punti e virgola, newline, combinazioni di quelli, ecc., Ma nessuna cifra), prefissi e postfissi (come [...]). Tuttavia, non è possibile emettere numeri diversi da 1 a 10. Il programma potrebbe non ricevere alcun input. Le scappatoie standard non sono ammesse.

Questo è , quindi vince la risposta più breve in byte!

Classifica


10
Correlato (duplicato?)
Luis Mendo,

17
Se l'unica modifica è la codifica definitiva di un singolo parametro, questo rientra nel banner di " modifica banale " e, secondo gli standard di questo sito, viene comunque considerato come un duplicato.
Peter Taylor,

10
@PeterTaylor L'altra sfida ha un grosso problema con i limiti di numero intero. Il modo in cui è specificato ogni linguaggio TC che non ha numeri interi a 64 bit deve implementarli. (E questo riguarda molte lingue.)
Martin Ender,

17
@xnor Francamente, preferirei chiudere l'altra sfida come duplicata di questa. Il requisito praticamente lo rovina.
Dennis,

9
Non posso credere che ognuna delle 71 risposte (attualmente)
presuma che

Risposte:


69

C, 36 byte

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

Questo funziona perché il loop termina dopo il primo numero di 2 cifre.


1
Non si parla di essere in grado di passare parametri alla funzione.
Ash Burlaczenko,

10
@AshBurlaczenko Di cosa stai parlando? Questa è una tecnica standard nel golf per inizializzare un int su 1. Non è necessario passare alcun argomento della riga di comando. In effetti, così facendo il programma produrrà un output errato.
xsot,

6
@AshBurlaczenko Per consenso, abbiamo concordato che i programmi possono presumere che non saranno chiamati con input non necessari (in questo caso, nessun argomento aggiuntivo da riga di comando, oltre al programma stesso). Ciò significa che iqui sarà sempre 1 quando viene eseguito questo programma. Intendevi qualcos'altro?
FryAmTheEggman,

2
Siamo spiacenti, non ho scritto C ma presumo che il suo valore predefinito sarebbe 0 come in ogni lingua che ho usato.
Ash Burlaczenko,

17
@AshBurlaczenko In C, il primo argomento di main è il numero di argomenti della riga di comando (incluso il nome eseguibile stesso). Poiché non viene passato alcun argomento aggiuntivo, quel conteggio è 1. Il secondo argomento di main è l'attuale elenco di argomenti della riga di comando, ma tale argomento viene ignorato in questo programma.
Chris Bouchard,

45

HTML, 44 byte

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

Questo è più lungo dell'hardcoding dell'output, ma è più interessante in questo modo. Crea un elenco ordinato ( <ol>) con dieci elementi elenco vuoti ( <li>). Per impostazione predefinita, gli elenchi ordinati sono delimitati da numeri decimali che iniziano con 1 e un punto.

HTML5 è molto tollerante riguardo ai tag non chiusi, quindi chiude i litag in modo implicito.


5
+1 per aver abusato del perdono di HTML5 (?).
HyperNeutrino,

1
A sangue freddo. Lo adoro.
ricdesi,

1
In realtà, NinjaBearMonkey e @HyperNeutrino, questo non è "perdono" di per sé; HTML5 è piuttosto esplicito su quali tag possono essere lasciati chiusi. È solo che gli elenchi e gli elementi dell'elenco sono due.
KRyan,

43

Bash, 12 personaggi

echo {1..10}

Esecuzione di esempio:

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

Bash + coreutils, 10 personaggi

(Sto solo cercando di essere divertente e usando ': No such file or directory↵ls: cannot access 'come separatore.)

ls {1..10}

Esecuzione di esempio:

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 personaggi

(Sto solo cercando di essere noioso. O non solo provare ...)

seq 10

Esecuzione di esempio:

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

7
L'ultimo è solo seq / coreutils, bash non coinvolto.
hyde,

1
@hyde: senza bash la chiamata a seq non sarebbe possibile, vero?
Mega Man,

Nella mia visione, se lasciamo fuori bash, allora seqsarebbe l'interprete. Ma allora 10è un programma valido in linguaggio "seq"?
arte

Non provarlo mai sulla tua console: echo {1..1000000000} Se sei curioso, fai con il tuo rischio.
Brain90,

@ Brain90, non c'è pericolo sulla mia povera macchina RAM da 8 GB. ;) "Bash: espansione parentesi: impossibile allocare memoria per 1000000000 elementi". Almeno con bash4.3.46.
arte

26

Gelatina, 2 byte

⁵R

Spiegazione

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

7
⁵R, due byte
Luis Mendo,

13
Perché mai qualcuno dovrebbe inventare una lingua in cui un comando restituisce il quinto argomento o l'intero 10? ..
Andreï Kostyrka,

14
@ AndreïKostyrka Perché Dennis
TuxCrafting

1
Esiste una codifica in cui è presente solo un byte? Dato che sono 3 byte in UTF-8, la lunghezza del programma dovrebbe essere di 4 byte.
Radovan Garabík,

2
@ RadovanGarabík Jelly usa la sua codepage
TuxCrafting

20

Brainfuck, 58 byte

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

Provalo online!


1
Sconfiggimi, e anche più breve, pubblicherò il mio comunque perché non penso che abbiamo usato lo stesso trucco. Ho il mio +1 :)
Katenkyo il

Ero vicino con 67 byte, ma non abbastanza vicino:++++++[>++++++++<-]>>>++++++++++[-<+<<+>>>]<[-<.+<.>>]<<-[>-<-]>.-.
Julian Lachniet il


16

LOLCODE, 79 byte

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

Questo codice potrebbe richiedere alcune modifiche a seconda del compilatore che stai utilizzando. Alcuni vogliono che tu aggiunga HAI / KTHXBYE, altri vogliono che tu dichiari la variabile in anticipo. Un compilatore si interrompe se il nome del ciclo è più breve di due caratteri, anche se il nome del ciclo non viene mai utilizzato.


15

CJam, 6 5 byte

A,:)`

1 byte salvato grazie a Luis Mendo

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

spiegazione:

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

Provalo online!


3
mi piace la faccina sorridente. (Non c'è un errore nella tua spiegazione: A, crea un elenco da 0 a 9)
KarlKastor,

14

R, 4 byte

2:10

":" È probabilmente uno dei comandi R più utilizzati. Miglioramento di Barranka nei commenti.


2
Dovrebbero richiedere la stampa di una stringa, non restituire un vettore, considerare cat(1:10).
Andreï Kostyrka,

C'è uno spazio bianco principale?
Clashsoft,

9
Dato che l'output è [1] 1 2 3 4 5 6 7 8 9 10, forse sarebbe meglio 2:10, che uscirà[1] 2 3 4 5 6 7 8 9 10
Barranka il

@Clashsoft, è stato un errore - grazie. E sì, Barranka, buon punto - votato.
Forgottenscience,

13

Rubino, 8 byte

Separato da newline.

p *1..10

* Separato da newline.
David Conrad,

Ce la puoi fare?
dkudriavtsev,

@DmitryKudriavtsev sì, la stella causa la scomposizione del codice p 1,2,3,4,5,6,7,8,9,10e le virgole lo pseparano da nuove righe.
Value Ink

OK. Non pensavo che l'operatore avesse una precedenza inferiore all'intervallo.
dkudriavtsev,

11

Pyth, 2 byte

ST

La prima volta che ho usato una lingua da golf per rispondere!

Spiegazione:

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

Ninja in pochi secondi: /
TuxCrafting


10

In realtà, 9 byte

19`;1+`na

Provalo qui!

Spiegazione:

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
Benvenuti in Puzzle di programmazione e Code Golf!
Adnan,

10

Mathematica - 13 byte

Echo@Range@10

4 byte salvati grazie a MartinEnder !

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


10

JavaScript (ES6), 29 byte

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

Uscite 1,2,3,4,5,6,7,8,9,10. Non è la risposta più breve ma ho pensato che fosse un calcolo divertente.


perché noalert([...'1'+234567891]+0)
edc65,

2
@ edc65 a) non è così divertente b) non è breve come la risposta JavaScript precedentemente pubblicata c) non è nemmeno così corta alert([...'1234567891']+0).
Neil,


8

DC , 12 byte

... un po 'cattivo ora ...

[zzpA>L]dsLx

srotolato:

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

Una delle operazioni z(push stack length) non ha alcuna operazione corrispondente che la preleva dallo stack. In questo modo lo stack cresce con ogni iterazione di uno. Questo è abusato come contatore di loop.

Questo ciclo inizia con uno stack vuoto, quindi il primo zspinge 0nella prima iterazione, quindi la stampa avviene dopo la seconda, zche corrisponde alla duplicazione del risultato 1+dnella versione seguente. In questo modo il confronto ha bisogno di testare per più grande di 10qui invece di bigger than 11sotto.


DC , 14 byte

Semplicemente avanti ...

1[p1+dB>L]dsLx

srotolato:

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)

Vorrei che spiegassi questi = (
Evan Carroll

@EvanCarroll - Scrivere dcprogrammi è più facile che spiegare. Ma ho provato ... ;-)

7

> <> , 13 byte

01+:a)?;:nao!

Spiegazione :

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

Puoi vederlo in azione sull'interprete online .


Potresti per favore aggiungere una spiegazione?
Clashsoft,

1
Esegui il programma nao!
Cyoce,

@Cyoce> <> è fantastico scrivere pezzi di codice entusiasti, ho questa risposta per il controllo del cambio della moto nella stessa vena;)
Aaron


6

J, 6 byte

1+i.10

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

spiegazione:

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

Il mio pensiero era >:i.10, ma è la stessa cosa.
Dane,

6

Haskell, 17 byte

main=print[1..10]

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


Sono un po 'confuso qui ... Sono quasi certo che dovrebbe essere [1..10]. Non ho accesso a un compilatore di haskell, ma ricontrollerò la mattina.
Zwei,

@Zwei Ranges non include il limite superiore in Haskell.
C. Quilley,

1
@ C.Quilley Lo fanno totalmente. Potresti pensare a Python.
xnor

Eh, ero sicuro di aver testato questo codice. Ci scusiamo per l'affermazione precedente.
C. Quilley,

1
Non penso che tu abbia bisogno della parte principale =; il resto ha il tipo di programma haskell, IO (). Correggimi se esiste una sentenza specifica contro questo.
Lazersmoke,

6

Fuzzy Octo Guacamole, 7 byte

1.25*$:

Moltiplica 2*5, ne prende la portata 1e stampa l'intera pila.

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

Crea un intervallo dinamico con l' ..operatore da 1a 10, quindi quell'array viene lasciato sulla pipeline. L'output è implicito. Il .ToString()metodo predefinito di un array è newline, quindi sarà separato da newline quando eseguito in una shell pulita.


6

Java 7, 53 51 52 byte (loop)

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

51 byte alternativi (hardcoded è più corto .., ma considerato una scappatoia predefinita , quindi non consentito):

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

54 byte alternativi (ricorsivi):

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

Codice non testato e test per tutti e tre:

Provalo qui.

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: Per i divertimenti: Come sottolineato correttamente da @SkippyLeGrandGourou , la base da 1 a 10 non è specificata nella domanda, quindi ecco il codice Java (non codificato) che genera da 1 a 10 nelle basi da 2 a 10:

Provalo qui.

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 

Il ciclo può essere for(int i=1;i<11;)System.out.println(i++), salva un byte.
Clashsoft,

@ zyabin101 Modificato l'ordine in modo che la risposta codificata non sia competitiva. Comunque l'ho lasciato nella risposta, dato che è abbastanza divertente (e triste) che il codice sia il modo più breve per stampare 1-10 in Java 7 ..
Kevin Cruijssen,

2
@ zyabin101 Tranne quando la domanda è taggata con complessità kolmogorov .
Neil,

@Neil Oh, giusto. o_o
user48538

1
Java 8 è il chiaro vincitore qui grazie a lambdas! ()->java.util.stream.IntStream.range(1,11).forEach(System.out::println). Perché dici che è più lungo? È Java 8 ... Java 8 è più corto di default! Non ho nemmeno messo le parentesi graffe prima e dopo il codice! Posso anche contare fino a 98 senza ottenere un personaggio in più! Vedere? Regole di Java 8!
Olivier Grégoire il

6

Perl 6, 12 byte

say @(1..10)

Il @()necessario per convertire un array

Soluzione alternativa:

say @(^10+1)

Crea un intervallo [0,10) quindi ne aggiunge uno, quindi viene convertito in un array.


Per Perl 5.10, 14 byte e quasi come il tuo:say for(1..10)
Paul Picard,

@PaulPicard pubblicalo! Perl 5 è una lingua diversa.
Ven

Puoi rimuovere lo spazio per say@(1..10)?
Cyoce,

@Cyoce ahimè no, è un errore.
Ven

10 byte:say 1...10
nwellnhof

5

Python2 - 19 17 byte

print range(1,11)

Salvato 1 byte, grazie a KevinLau - non a Kenny !

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


Usa rangeinvece xrange, supponendo Python 2. In effetti, questa versione corrente non sembra funzionare sulla mia macchina in nessuna delle versioni di Python.
Value Ink

@ KevinLau-notKenny Avrei potuto giurare di averlo provato e di non avere nulla da STDOUT. Grazie!
Yytsi,

Importante: è solo Python 2
Mega Man il

1
@ABcDexter L'ho verificato, molto bello! Il motivo per cui non ho usato Python3, è stato perché ero costretto a lanciare l' rangeoggetto che restituiva un iteratore, a un elenco.
Yytsi,

1
@TuukkaX Sì, esattamente. Proverò anche altre lingue. Grazie :).
ABcDexter,

5

Vim, 12 byte

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

Uscite

1
2
3
4
5
6
7
8
9
10

Spiegazione:

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)

Testato su Neovim 0.1.4, che a mia conoscenza è compatibile con i tasti con Vim.


Bello. Mi è venuta in mente iYp<C-v><C-a>1<Esc>d^9@-ZZ. Stesso numero di byte.
primo


5

MarioLANG , 34 27 25 byte

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

Provalo online!

Grazie a Jo King per -7 -9 byte!

codice:

Mario cade, incrementando e dicendo il suo numero cinque volte, poi sale sull'ascensore, sale e cade di nuovo, incrementando e dicendo il suo numero altre cinque volte. Quindi cammina a sinistra e cade fuori dal codice.

14 byte in meno rispetto al modo semplice:

39 byte

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

Provalo online!


Grazie. A volte non riesci a vedere la foresta per gli alberi.
Dorian,


4

Groovy, 11 personaggi

print 1..10

Esecuzione di esempio:

bash-4.3$ groovy -e 'print 1..10'
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.