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


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.


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.


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

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

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!


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


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.


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!


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.


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

* 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.

Ninja'd po sekundach: /
TuxCrafting


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

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}


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.


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


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)

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 .


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.

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].


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.

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.


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 

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ę.


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]


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.


Miły. Wymyśliłem iYp<C-v><C-a>1<Esc>d^9@-ZZ. Ta sama liczba bajtów.
primo



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]

4

JavaScript, 25 24 bajtów

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

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.