Распечатайте числа от 1 до 10


43

Это может быть очень простой задачей, но я удивлен, что это еще не было сделано на Code-Golf:

Выведите все целые числа от 1 до 10 включительно в порядке возрастания до стандартного вывода.

Ваш выходной формат может быть любым, который поддерживает ваш язык. Это включает в себя произвольные разделители (запятые, точки с запятой, новые строки, их комбинации и т. Д., Но без цифр), а также префиксы и постфиксы (например [...]). Однако вы не можете выводить любые другие числа, кроме 1–10. Ваша программа может не принимать никаких вводных данных. Стандартные лазейки запрещены.

Это , поэтому выигрывает самый короткий ответ в байтах!

Leaderboard


10
Связанные (дубликаты?)
Луис Мендо

17
Если единственным изменением является жесткое кодирование отдельного параметра, то это попадает под баннер « тривиальных изменений », и по стандартам этого сайта все равно считается обманом.
Питер Тейлор

10
@PeterTaylor Другая проблема имеет огромную проблему с целочисленными ограничениями все же. Способ, который указан для каждого языка TC, который не имеет 64-битных целых чисел, должен реализовывать их. (И это затрагивает довольно много языков.)
Мартин Эндер

17
@ xnor Откровенно говоря, я бы предпочел закрыть другой вызов, как дубликат этого. Требование в значительной степени разрушает его.
Деннис

9
Я не могу поверить, что каждый из (в настоящее время) 71 ответов предполагает, что основание должно быть десятичным ...
Skippy le Grand Gourou

Ответы:


69

C 36 байтов

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

Это работает, потому что цикл заканчивается после первых двухзначных чисел.


1
Там нет упоминания о возможности передачи параметров в функцию.
Эш Бурлаченко

10
@AshBurlaczenko О чем ты говоришь? Это стандартная техника в гольфе для инициализации int в 1. Вам не нужно передавать аргументы командной строки. Фактически, это приведет к неправильному выводу программы.
xsot

6
@AshBurlaczenko По общему согласию мы договорились, что программы могут предполагать, что они не будут вызываться с ненужным вводом (в этом случае без дополнительных аргументов командной строки, кроме самой программы). Это означает, что iздесь всегда будет 1, когда эта программа запущена. Вы имели в виду что-то еще?
FryAmTheEggman

2
Извините, я не написал C, но предположил, что значение по умолчанию будет 0, как на каждом языке, который я использовал.
Эш Бурлаченко

17
@AshBurlaczenko В C первым аргументом main является количество аргументов командной строки (включая само имя исполняемого файла). Поскольку никакие дополнительные аргументы не передаются, это число равно 1. Второй аргумент main - это фактический список аргументов командной строки, но этот аргумент игнорируется в этой программе.
Крис Бушар

45

HTML, 44 байта

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

Это дольше, чем жесткое кодирование вывода, но это более интересно. Создает упорядоченный список ( <ol>) с десятью пустыми элементами списка ( <li>). По умолчанию упорядоченные списки разделены десятичными числами, начинающимися с 1 и точки.

HTML5 очень простителен в отношении незамкнутых тегов, поэтому он закрывает liтеги неявно.


5
+1 за злоупотребление прощением HTML5 (?).
HyperNeutrino

1
Хладнокровный. Я люблю это.
Рикдези

1
На самом деле, NinjaBearMonkey и @HyperNeutrino, это само по себе не «прощение»; HTML5 довольно явно указывает, какие теги разрешается оставлять закрытыми. Просто списки и элементы списка - это два.
KRyan

43

Баш, 12 символов

echo {1..10}

Образец прогона:

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

Bash + coreutils, 10 символов

(Просто пытаюсь быть смешным и использую в ': No such file or directory↵ls: cannot access 'качестве разделителя.)

ls {1..10}

Образец прогона:

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 символов

(Просто пытаюсь быть скучным. Или не просто пытаюсь ...)

seq 10

Образец прогона:

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

7
Последний просто seq / coreutils, bash не задействован.
Хайд

1
@hyde: Без bash вызов seq был бы невозможен, не так ли?
Mega Man

На мой взгляд, если мы уйдем bash, то seqбудет переводчиком. Но тогда 10действительная программа на языке «seq»?
Манатворк

Никогда не пытайтесь сделать это на своей консоли: echo {1..1000000000} Если вам интересно, делайте это на свой страх и риск.
Brain90

@ Brain90, на моей бедной 8Гб оперативной памяти нет опасности. ;) «Bash: brace extension: не удалось выделить память для 1000000000 элементов». По крайней мере, с bash4.3.46.
manatwork

27

Желе, 2 байта

⁵R

объяснение

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

7
⁵R, два байта
Луис Мендо

14
С какой стати кто-то изобрел язык, на котором команда возвращает либо пятый аргумент, либо целое число 10? ..
Андрей Костырка,

14
@ AndreïKostyrka Потому что Деннис
TuxCrafting

1
Есть ли кодировка, где всего один байт? Поскольку в UTF-8 это 3 байта, длина программы должна составлять 4 байта.
Радован Гарабик

2
@ RadovanGarabík Jelly использует собственную кодовую страницу
TuxCrafting

20

Brainfuck, 58 байт

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

Попробуйте онлайн!


1
Ударь меня, и, короче, опубликую мой, так как я не думаю, что мы использовали один и тот же трюк. Имейте +1 +1
Катенкё

Я был близок с 67 байтами, но недостаточно близко:++++++[>++++++++<-]>>>++++++++++[-<+<<+>>>]<[-<.+<.>>]<<-[>-<-]>.-.
Джулиан Лакниет


16

LOLCODE, 79 байтов

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

Этот код может нуждаться в настройке в зависимости от используемого компилятора. Некоторые хотят, чтобы вы добавили HAI / KTHXBYE, другие хотят, чтобы вы объявили переменную заранее. Один компилятор ломается, если имя вашего цикла короче двух символов, даже если имя цикла никогда не используется.


15

CJam, 6 5 байтов

A,:)`

1 байт сохранен благодаря Луису Мендо

Выход: [1 2 3 4 5 6 7 8 9 10]

Explaination:

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

Попробуйте онлайн!


3
мне нравится смайлик (Нет ошибки в вашем объяснении: A, создает список от 0 до 9)
KarlKastor

14

R, 4 байта

2:10

":", Вероятно, является одной из наиболее часто используемых команд R. Улучшение от Барранки в комментариях.


2
Если они требуют печати строки, не возвращая вектор, рассмотрите cat(1:10).
Андрей Костырка

Есть ли ведущие пробелы?
Clashsoft

9
Учитывая, что выходной [1] 1 2 3 4 5 6 7 8 9 10, может быть, будет лучше 2:10, который будет выводить[1] 2 3 4 5 6 7 8 9 10
Барранка

@ Clashsoft, это была ошибка - спасибо. И да, Барранка, хороший момент - проголосовал.
Забытая

13

Рубин, 8 байт

Разделены символами новой строки.

p *1..10

* Разделены символами новой строки.
Дэвид Конрад

Вы можете сделать это?
Дкудрявцев

@DmitryKudriavtsev да, звезда заставляет код ломаться p 1,2,3,4,5,6,7,8,9,10и запятые заставляют pих разделять их новыми строками .
Value Ink

ХОРОШО. Я не думал, что оператор имеет более низкий приоритет, чем диапазон.
дкудрявцев

11

Pyth, 2 байта

ST

Впервые я использовал гольф, чтобы ответить!

Объяснение:

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

Ninja'd по секундам: /
TuxCrafting



10

Mathematica - 13 байт

Echo@Range@10

Сохранено 4 байта благодаря MartinEnder !

Выход: >> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}


10

JavaScript (ES6), 29 байт

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

Выходы 1,2,3,4,5,6,7,8,9,10. Не самый короткий ответ, но я подумал, что это забавный расчет.


почему нетalert([...'1'+234567891]+0)
edc65

2
@ edc65 а) это не так весело б) оно не такое короткое, как ранее опубликованный ответ JavaScript в) оно даже не такое короткое, как alert([...'1234567891']+0).
Нил


8

DC , 12 байт

... немного значит теперь ...

[zzpA>L]dsLx

раскатали:

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

Одна из операций z(длина стека проталкивания) не имеет соответствующей операции, которая берет ее из стека. Таким образом, стек увеличивается с каждой итерацией на одну. Это злоупотребляет как счетчик цикла.

Этот цикл начинается с пустого стека, поэтому 1-е zнажатие 0в 1-й итерации zприводит к печати после 2-й, что соответствует дублированию результата 1+dв приведенной ниже версии. Таким образом, сравнение должно проверяться на большее, чем 10здесь, а не bigger than 11ниже.


DC , 14 байтов

Просто прямо вперед ...

1[p1+dB>L]dsLx

раскатали:

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)

Я хотел бы, чтобы вы объяснили это = (
Эван Кэрролл

@EvanCarroll - Написание dcпрограмм проще, чем объяснение. Но я попробовал ... ;-)

7

> <> , 13 байт

01+:a)?;:nao!

Пояснение:

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

Вы можете увидеть это в действии на онлайн-переводчике .


Не могли бы вы добавить объяснение?
Clashsoft

1
Запустите программу нао!
Cyoce

@Cyoce> <> здорово писать восторженные кусочки кода, у меня такой же ответ на проверку мотоциклетного снаряжения ;)
Аарон


6

J, 6 байт

1+i.10

Выход: 1 2 3 4 5 6 7 8 9 10

Explaination:

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

Моя мысль была >:i.10, но это то же самое.
датчанин

6

Haskell, 17 байт

main=print[1..10]

Выходы [1,2,3,4,5,6,7,8,9,10].


Я немного запутался здесь ... Я почти уверен, что так и должно быть [1..10]. У меня нет доступа к компилятору haskell, но я проверю утром.
Цвей

@Zwei Диапазоны не включают их верхний предел в Haskell.
C. Quilley

1
@ C.Quilley Они полностью делают. Возможно, вы думаете о Python.
xnor

Да, я был уверен, что проверил этот код. Извиняюсь за более раннее утверждение.
C. Quilley

1
Я не думаю, что вам нужно главное = часть; остальное имеет тип программы на Haskell, IO (). Поправьте меня, если есть конкретное решение против этого.
Lazersmoke

6

Нечеткое окто гуакамоле, 7 байтов

1.25*$:

Умножает 2*5, берет диапазон этого и 1и печатает весь стек.

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 байт

1..10

Создает диапазон динамического с ..оператором от 1до 10, то этот массив остается на трубопроводе. Вывод неявный. .ToString()Методом по умолчанию для массива является символ новой строки, поэтому он будет разделен символом новой строки при запуске в чистой оболочке.


6

Java 7, 53 51 52 байта (цикл)

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

Альтернатива 51 байт (жестко закодировано короче .., но считается лазейкой по умолчанию , поэтому не допускается):

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

Альтернатива 54 байта (рекурсивная):

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

Разобрать и проверить код для всех трех:

Попробуй это здесь.

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

РЕДАКТИРОВАТЬ: Для забавы: Как правильно указал @SkippyLeGrandGourou , база от 1 до 10 не указана в вопросе, так что вот (не в коде) Java-код, который выводит от 1 до 10 в базы от 2 до 10:

Попробуй это здесь.

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 

Цикл может быть for(int i=1;i<11;)System.out.println(i++), сохраняет один байт.
Clashsoft

@ zyabin101 Изменил порядок, чтобы жестко запрограммированный ответ не конкурировал. Тем не менее, он оставил это в ответе, так как довольно забавно (и грустно), что жестко закодированный является кратчайшим способом напечатать 1-10 в Java 7 ..
Кевин Круйссен

2
@ zyabin101 За исключением случаев, когда вопрос помечен колмогоровской сложностью .
Нил

@ Нил О, верно. o_o
user48538

1
Java 8 - явный победитель здесь благодаря лямбдам! ()->java.util.stream.IntStream.range(1,11).forEach(System.out::println), Почему вы говорите, что это дольше? Это Java 8 ... Java 8 по умолчанию короче! Я даже не ставил скобки до и после кода! Я могу даже сосчитать до 98, не получив лишнего символа! Видеть? Правила Java 8!
Оливье Грегуар

6

Perl 6, 12 байт

say @(1..10)

@()Необходимо преобразовать в массив

Альтернативное решение:

say @(^10+1)

Создает диапазон [0,10), затем добавляет единицу, а затем преобразует в массив.


Для Perl 5.10, 14 байтов и почти как у вас:say for(1..10)
Пол Пикард

@PaulPicard действительно опубликуйте это! Perl 5 - это другой язык.
Ven

Вы можете удалить место для say@(1..10)?
Cyoce

@ Кайос, увы нет, это ошибка.
Ven

10 байт:say 1...10
nwellnhof

5

Python2 - 19 17 байт

print range(1,11)

Сохранено 1 байт, спасибо KevinLau - не Кенни !

Выход: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


Используйте rangeвместо xrange, предполагая Python 2. Фактически, эта текущая версия не работает на моем компьютере ни в одной из версий Python.
Чернила стоимости

@ KevinLau-notKenny Я мог бы поклясться, что попробовал это, и ничего не получил от STDOUT. Благодарность!
Yytsi

Важно: это всего лишь Python 2
Mega Man

1
@ABcDexter Я проверил это, очень приятно! Причина, по которой я не использовал Python3, заключалась в том, что я был вынужден привести rangeобъект, возвращающий итератор, к списку.
Yytsi

1
@TuukkaX Да, именно так. Я попробую и другие языки тоже. Благодарность :).
ABcDexter

5

Vim, 12 байт

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

Выходы

1
2
3
4
5
6
7
8
9
10

Объяснение:

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)

Протестировано на Neovim 0.1.4, который, насколько мне известно, совместим с Vim.


Ницца. Я придумал iYp<C-v><C-a>1<Esc>d^9@-ZZ. Тот же счетчик байтов.
Примо


5

MarioLANG , 34 27 25 байтов

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

Попробуйте онлайн!

Спасибо Джо Кингу за -7 -9 байт!

код:

Марио падает, увеличивая и произнося свой номер пять раз, затем он наступает на лифт, поднимается и снова падает, увеличивая и произнося свой номер еще пять раз. Затем он идет налево и выпадает из кода.

14 байтов короче, чем простой способ:

39 байт

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

Попробуйте онлайн!


Спасибо. Иногда вы просто не можете увидеть лес за деревьями.
Дориан


4

Groovy, 11 персонажей

print 1..10

Образец прогона:

bash-4.3$ groovy -e 'print 1..10'
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.