Wydrukuj liczby od 1 do 10

42

To może być bardzo proste wyzwanie, ale jestem zaskoczony, że nie zostało to jeszcze zrobione na code-golfie:

Wydrukuj wszystkie liczby całkowite od 1 do 10 włącznie w porządku rosnącym na standardowe wyjście.

Twój format wyjściowy może być dowolny, obsługiwany przez Twój język. Obejmuje to dowolne separatory (przecinki, średniki, znaki nowej linii, ich kombinacje itp., Ale bez cyfr) oraz przedrostki i postfiksy (jak [...]). Nie możesz jednak wyprowadzać żadnych liczb innych niż od 1 do 10. Twój program może nie przyjmować żadnych danych wejściowych. Standardowe luki są niedozwolone.

To jest , więc wygrywa najkrótsza odpowiedź w bajtach!

Tabela liderów

Clashsoft
źródło
10
Powiązane (duplikat?)
Luis Mendo
17
Jeśli jedyną zmianą jest na stałe zakodowanie pojedynczego parametru, to mieści się on pod hasłem „ trywialnej zmiany ”, a według standardów tej witryny nadal liczy się jako duplikat.
Peter Taylor
10
@PeterTaylor Drugie wyzwanie ma jednak ogromny problem z limitami liczb całkowitych. Sposób, w jaki jest określony w każdym języku TC, który nie ma 64-bitowych liczb całkowitych, wymaga ich implementacji. (I dotyczy to całkiem wielu języków.)
Martin Ender
17
@ xnor Szczerze mówiąc, wolałbym zakończyć inne wyzwanie jako duplikat tego. To wymaganie prawie go psuje.
Dennis
9
Nie mogę uwierzyć, że każda z (obecnie) 71 odpowiedzi zakłada, że ​​podstawa powinna być dziesiętna…
Skippy le Grand Gourou

Odpowiedzi:

68

C, 36 bajtów

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

Działa to, ponieważ pętla kończy się po pierwszej 2-cyfrowej liczbie.

xsot
źródło
1
Nie ma wzmianki o możliwości przekazania parametrów do funkcji.
Ash Burlaczenko
10
@AshBurlaczenko O czym ty mówisz? Jest to standardowa technika gry w golfa w celu zainicjowania liczby całkowitej 1. Nie trzeba przekazywać żadnych argumentów wiersza poleceń. W rzeczywistości spowoduje to, że program wygeneruje nieprawidłowe dane wyjściowe.
xsot,
6
@AshBurlaczenko W drodze konsensusu uzgodniliśmy, że programy mogą zakładać, że nie będą wywoływane bez zbędnych danych wejściowych (w tym przypadku bez dodatkowych argumentów wiersza poleceń poza samym programem). Oznacza to, że itutaj zawsze będzie 1, gdy ten program zostanie uruchomiony. Miałeś na myśli coś innego?
FryAmTheEggman
2
Przepraszam, nie napisałem C, ale założyłem, że domyślną wartością będzie 0, jak w każdym używanym języku.
Ash Burlaczenko
16
@AshBurlaczenko W C pierwszym argumentem main jest liczba argumentów wiersza poleceń (w tym sama nazwa pliku wykonywalnego). Ponieważ nie przekazano żadnych dodatkowych argumentów, liczba ta wynosi 1. Drugim argumentem main jest faktyczna lista argumentów wiersza poleceń, ale ten argument jest ignorowany w tym programie.
Chris Bouchard,
43

HTML, 44 bajty

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

Jest to dłuższe niż kodowanie wyjściowe, ale w ten sposób jest bardziej interesujące. Tworzy uporządkowaną listę ( <ol>) z dziesięcioma pustymi elementami listy ( <li>). Domyślnie uporządkowane listy są rozdzielane liczbami dziesiętnymi rozpoczynającymi się od 1 i kropki.

HTML5 bardzo wybacza w odniesieniu do niezamkniętych tagów, więc zamyka je liniejawnie.

NinjaBearMonkey
źródło
4
+1 za nadużycie wybaczania HTML5 (?).
HyperNeutrino,
1
Opanowany. Kocham to.
ricdesi,
W rzeczywistości, NinjaBearMonkey i @HyperNeutrino, to nie jest „wybaczenie” per se; HTML5 bardzo wyraźnie określa, które tagi mogą pozostać niezamknięte. Po prostu listy i elementy listy to dwa, które są.
KRyan
41

Bash, 12 znaków

echo {1..10}

Przykładowy przebieg:

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

Bash + coreutils, 10 znaków

(Po prostu próbuję być zabawny i używać ': No such file or directory↵ls: cannot access 'jako separatora.)

ls {1..10}

Przykładowy przebieg:

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 znaków

(Po prostu próbuję być nudny. Albo nie tylko próbować…)

seq 10

Przykładowy przebieg:

bash-4.3$ seq 10
1
2
3
4
5
6
7
8
9
10
człowiek w pracy
źródło
6
Ostatni to tylko seq / coreutils, bash nie jest zaangażowany.
hyde
1
@hyde: Bez bashu połączenie z sekwencją nie byłoby możliwe, prawda?
Mega Man,
W mojej wizji, gdybyśmy pominęli bash, to seqbyłby tłumacz. Ale czy 10jest to poprawny program w języku „seq”?
manatwork
Nigdy nie próbuj tego na konsoli: echo {1..1000000000} Jeśli jesteś ciekawy, zrób to na własne ryzyko.
Brain90 18.10.16
@ Brain90, nie ma niebezpieczeństwa na mojej słabej maszynie RAM 8Gb. ;) „Bash: interpretacja nawiasów: nie udało się przydzielić pamięci dla 1000000000 elementów”. Przynajmniej z bash4.3.46.
manatwork
24

Galaretka, 2 bajty

⁵R

Wyjaśnienie

⁵  Return the fifth command line argument or 10
 R Range
   Implicit output
TuxCrafting
źródło
7
⁵R, dwa bajty
Luis Mendo
13
Dlaczego, u licha, ktoś wymyśliłby język, w którym polecenie zwraca piąty argument lub liczbę całkowitą 10? ..
Andreï Kostyrka
14
@ AndreïKostyrka Ponieważ Dennis
TuxCrafting
1
Czy istnieje kodowanie, w którym jest tylko jeden bajt? Ponieważ w UTF-8 są to 3 bajty, długość programu powinna wynosić 4 bajty.
Radovan Garabík
2
@ RadovanGarabík Jelly używa własnej strony kodowej
TuxCrafting
20

Brainfuck, 58 bajtów

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

Wypróbuj online!

Loovjo
źródło
1
Pobij mnie do tego, a także krótszy, i tak opublikuje mój, ponieważ nie sądzę, że zastosowaliśmy tę samą sztuczkę. Have my +1 :)
Katenkyo
Byłem blisko z 67 bajtami, ale niewystarczająco blisko:++++++[>++++++++<-]>>>++++++++++[-<+<<+>>>]<[-<.+<.>>]<<-[>-<-]>.-.
Julian Lachniet
18

05AB1E , 2 bajty

Kod:

TL

Wyjaśnienie:

T   # Constant for 10
 L  # Range

Wypróbuj online! .

Adnan
źródło
4
Kiedy to zobaczyłem, poczułem potrzebę powiedzenia „tl; dr”. Przy okazji: P +1.
HyperNeutrino,
16

LOLCODE, 79 bajtów

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

Ten kod może wymagać drobnych poprawek w zależności od używanego kompilatora. Niektórzy chcą, abyś dodał HAI / KTHXBYE, inni chcą, aby zadeklarować zmienną przed czasem. Jeden kompilator ulega awarii, jeśli nazwa pętli jest krótsza niż dwa znaki, nawet jeśli nazwa pętli nigdy nie jest używana.


źródło
15

CJam, 6 5 bajtów

A,:)`

1 bajt zapisany dzięki Luisowi Mendo

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

Wyjaśnienie:

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

Wypróbuj online!

Loovjo
źródło
3
lubię buźkę. (Czy w twoim objaśnieniu nie ma błędu: A tworzy listę od 0 do 9)
KarlKastor
14

R, 4 bajty

2:10

„:” Jest prawdopodobnie jednym z najczęściej używanych poleceń R. Ulepszenie autorstwa Barranki w komentarzach.

Forgottenscience
źródło
2
Jeśli wymagają drukowania łańcucha, a nie zwracania wektora, zastanów się cat(1:10).
Andreï Kostyrka
Czy istnieje wiodąca biała spacja?
Clashsoft
9
Biorąc pod uwagę, że wynik jest [1] 1 2 3 4 5 6 7 8 9 10, być może byłoby lepiej 2:10, co da wynik[1] 2 3 4 5 6 7 8 9 10
Barranka
@Clashsoft, to był błąd - dziękuję. I tak, Barranka, dobra uwaga - głosowano.
Forgottenscience
13

Rubinowy, 8 bajtów

Rozdzielone znakami nowej linii.

p *1..10
Wartość tuszu
źródło
* Rozdzielone znakami nowej linii.
David Conrad,
Możesz to zrobić?
dkudriavtsev
@DmitryKudriavtsev tak, gwiazda powoduje, że kod się psuje, p 1,2,3,4,5,6,7,8,9,10a przecinki powodują prozdzielanie ich nowymi liniami.
Wartość tuszu
DOBRZE. Nie sądziłem, że operator ma niższy priorytet niż zasięg.
dkudriavtsev
11

Pyth, 2 bajty

ST

Pierwszy raz użyłem języka golfowego, aby odpowiedzieć!

Wyjaśnienie:

S    1-indexed range. [1, 2, ... A].
 T   Variable. Initialized to 10. (Ten)
     Implicitly printed.
charredgrass
źródło
Ninja'd po sekundach: /
TuxCrafting
11

Brainfuck, 41 bajtów

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

Wynik

1 2 3 4 5 6 7 8 9 10

Wypróbuj online .

primo
źródło
1
Miły! - - - - -
Leaky Nun
10

Właściwie 9 bajtów

19`;1+`na

Wypróbuj tutaj!

Wyjaśnienie:

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
Okład wilgotny z lekiem
źródło
9
Witamy w Programowaniu zagadek i Code Golf!
Adnan
10

Mathematica - 13 bajtów

Echo@Range@10

Zaoszczędź 4 bajty dzięki MartinEnder !

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

Yytsi
źródło
10

JavaScript (ES6), 29 bajtów

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

Wyjścia 1,2,3,4,5,6,7,8,9,10. Nie jest to najkrótsza odpowiedź, ale pomyślałem, że to świetna kalkulacja.

Neil
źródło
dlaczego niealert([...'1'+234567891]+0)
edc65
2
@ edc65 a) nie jest tak zabawne b) nie jest tak krótkie jak wcześniej opublikowana odpowiedź JavaScript c) nie jest tak krótkie jak alert([...'1234567891']+0).
Neil
9

MATL , 3 bajty

10:

Wypróbuj online!

Kod generuje wektor [1 2 ... 10]i domyślnie wyświetla go, z liczbami oddzielonymi spacjami.

Luis Mendo
źródło
8

DC , 12 bajtów

... trochę podły teraz ...

[zzpA>L]dsLx

Rozwinięty:

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

Jedna z operacji z(długość stosu wypychania) nie ma odpowiadającej operacji, która bierze ją ze stosu. W ten sposób stos rośnie z każdą iteracją o jeden. Jest to nadużywane jako licznik pętli.

Ta pętla zaczyna się od pustego stosu, więc 1. zwpycha 0pierwszą iterację, więc drukowanie następuje po drugiej, zco odpowiada duplikowaniu wyniku 1+dw poniższej wersji. W ten sposób porównanie musi przetestować większy niż 10tutaj zamiast bigger than 11poniżej.


DC , 14 bajtów

Po prostu prosto ...

1[p1+dB>L]dsLx

Rozwinięty:

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)
yeti
źródło
Chciałbym, żebyś to wyjaśnił = (
Evan Carroll,
@EvanCarroll - Pisanie dcprogramów jest łatwiejsze niż wyjaśnianie. Ale próbowałem ... ;-)
yeti
7

> <> , 13 bajtów

01+:a)?;:nao!

Objaśnienie:

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

Możesz to zobaczyć w akcji na tłumaczu online .

Aaron
źródło
Czy możesz dodać wyjaśnienie?
Clashsoft,
1
Uruchom program nao!
Cyoce
@Cyoce> <> jest świetny do pisania entuzjastycznych fragmentów kodu, mam odpowiedź na to pytanie w tym samym stylu;)
Aaron
6

J, 6 bajtów

1+i.10

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

Wyjaśnienie:

1+       NB. Add one to...
  i.10   NB. A range from 0 to 9.
Loovjo
źródło
Myślałem tak >:i.10, ale to to samo.
Dane
6

Haskell, 17 bajtów

main=print[1..10]

Wyjścia [1,2,3,4,5,6,7,8,9,10].

C. Quilley
źródło
Jestem trochę zdezorientowany ... Jestem prawie pewien, że tak powinno być [1..10]. Nie mam dostępu do kompilatora haskell, ale sprawdzę dwukrotnie rano.
Zwei,
Zakresy @Zwei nie uwzględniają górnego limitu w Haskell.
C. Quilley,
1
@ C.Quilley Oni całkowicie. Być może myślisz o Pythonie.
xnor
Huh, byłem pewien, że przetestowałem ten kod. Przepraszamy za wcześniejsze stwierdzenie.
C. Quilley,
1
Nie sądzę, że potrzebujesz głównej = części; reszta ma typ programu haskell, IO (). Popraw mnie, jeśli jest przeciwko temu konkretne orzeczenie.
Lazersmoke,
6

Rozmyte Octo Guacamole, 7 bajtów

1.25*$:

Mnoży 2*5, przyjmuje zakres tego 1i drukuje cały stos.

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ɪᴋᴇʀ
źródło
6

PowerShell, 5 bajtów

1..10

Tworzy zakres dynamiczny z ..operatorem od 1do 10, a następnie tablica pozostaje w potoku. Wynik jest niejawny. Domyślną .ToString()metodą tablicy jest znak nowej linii, więc będzie on oddzielony znakiem nowej linii po uruchomieniu w czystej powłoce.

AdmBorkBork
źródło
6

Java 7, 53 51 52 bajtów (pętla)

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

Alternatywnie 51 bajtów (zakodowane na stałe jest krótsze .., ale uważane za domyślną lukę , więc niedozwolone):

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

Alternatywnie 54 bajty (rekurencyjne):

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

Nieskluczony i testowy kod dla wszystkich trzech:

Wypróbuj tutaj.

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();
  }
}

EDYCJA: Dla funsies: Jak poprawnie wskazał @SkippyLeGrandGourou , podstawa od 1 do 10 nie jest określona w pytaniu, więc tutaj jest (nie golfowy) kod Java, który wyprowadza od 1 do 10 w bazach 2 do 10:

Wypróbuj tutaj.

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
źródło
Pętla może być for(int i=1;i<11;)System.out.println(i++), oszczędza jeden bajt.
Clashsoft,
@ zyabin101 Zmieniłem kolejność, aby zakodowana odpowiedź nie była konkurencyjna. Nadal pozostawiłem to w odpowiedzi, ponieważ to dość zabawne (i smutne), że na
stałe
2
@ zyabin101 Z wyjątkiem sytuacji, gdy pytanie jest oznaczone złożonością kolmogorov .
Neil
@Neil Oh, racja. o_o
user48538
1
Java 8 jest tutaj wyraźnym zwycięzcą dzięki lambdas! ()->java.util.stream.IntStream.range(1,11).forEach(System.out::println). Dlaczego mówisz, że jest dłuższy? To Java 8 ... Java 8 jest domyślnie krótszy! Nie wstawiłem nawet nawiasów klamrowych przed kodem i po nim! Mogę nawet policzyć do 98 bez uzyskania dodatkowej postaci! Widzieć? Zasady Java 8!
Olivier Grégoire,
6

Perl 6, 12 bajtów

say @(1..10)

@()Jest potrzebny do konwersji do tablicy

Alternatywne rozwiązanie:

say @(^10+1)

Buduje zakres [0,10), następnie dodaje jeden, a następnie konwertuje na tablicę.

Ven
źródło
Dla Perla 5.10, 14 bajtów i prawie jak twój:say for(1..10)
Paul Picard
@PaulPicard zrób to! Perl 5 to inny język.
Ven
Czy możesz usunąć miejsce na say@(1..10)?
Cyoce
@Cyoce niestety nie, to błąd.
Ven
5

Python2 - 19 17 bajtów

print range(1,11)

Zaoszczędził 1 bajt, dzięki KevinLau - nie Kenny !

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

Yytsi
źródło
Użyj rangezamiast xrange, zakładając, że Python 2. W rzeczywistości ta bieżąca wersja nie działa na moim komputerze w żadnej z wersji Python.
Wartość tuszu
@ KevinLau-notKenny Mógłbym przysiąc, że tego spróbowałem i nie mam nic do STDOUT. Dzięki!
Yytsi
Ważne: To tylko Python 2
Mega Man,
1
@ABcDexter Sprawdziłem to, bardzo miło! Powodem, dla którego nie użyłem Python3, było to, że byłem zmuszony rzutować rangeobiekt, który zwraca iterator, na listę.
Yytsi
1
@TuukkaX Tak, dokładnie. Spróbuję też w innych językach. Dzięki :).
ABcDexter
5

Vim, 12 bajtów

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

Wyjścia

1
2
3
4
5
6
7
8
9
10

Wyjaśnienie:

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)

Testowany na Neovimie 0.1.4, który według mojej wiedzy jest zgodny z Vimem.

Zwei
źródło
Miły. Wymyśliłem iYp<C-v><C-a>1<Esc>d^9@-ZZ. Ta sama liczba bajtów.
primo
3
Krótszy . :)
DJMcMayhem
4

Groovy, 11 znaków

print 1..10

Przykładowy przebieg:

bash-4.3$ groovy -e 'print 1..10'
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
człowiek w pracy
źródło
4

JavaScript, 25 24 bajtów

for(i=1;i<11;)alert(i++)
Kruga
źródło
1
Witamy w PPCG! Myślę, że możesz zapisać bajt, wykonując alert(i++)(i usuwając drugi i++).
Martin Ender
Szkoda, że ​​pytanie określa, że ​​kolejność musi rosnąć, w przeciwnym razie można by zapisać bajt, używając zmniejszającej się pętli while zamiast pętli for i=10;while(i)alert(i--).
kamoroso94
Czy kod nie musi być osadzony w funkcji?
ericw31415