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

43

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

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

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

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

Leaderboard

Clashsoft
источник
10
Связанные (дубликаты?)
Луис Мендо
17
Если единственным изменением является жесткое кодирование отдельного параметра, то это попадает под баннер « тривиальных изменений », и по стандартам этого сайта все равно считается обманом.
Питер Тейлор
10
@PeterTaylor Другая проблема имеет огромную проблему с целочисленными ограничениями все же. Способ, который указан для каждого языка TC, который не имеет 64-битных целых чисел, должен реализовывать их. (И это затрагивает довольно много языков.)
Мартин Эндер
17
@ xnor Откровенно говоря, я бы предпочел закрыть другой вызов, как дубликат этого. Требование в значительной степени разрушает его.
Деннис
9
Я не могу поверить, что каждый из (в настоящее время) 71 ответов предполагает, что основание должно быть десятичным ...
Skippy le Grand Gourou

Ответы:

69

C 36 байтов

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

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

xsot
источник
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теги неявно.

NinjaBearMonkey
источник
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
manatwork
источник
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
TuxCrafting
источник
7
⁵R, два байта
Луис Мендо
14
С какой стати кто-то изобрел язык, на котором команда возвращает либо пятый аргумент, либо целое число 10? ..
Андрей Костырка,
14
@ AndreïKostyrka Потому что Деннис
TuxCrafting
1
Есть ли кодировка, где всего один байт? Поскольку в UTF-8 это 3 байта, длина программы должна составлять 4 байта.
Радован Гарабик
2
@ RadovanGarabík Jelly использует собственную кодовую страницу
TuxCrafting
20

Brainfuck, 58 байт

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

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

Loovjo
источник
1
Ударь меня, и, короче, опубликую мой, так как я не думаю, что мы использовали один и тот же трюк. Имейте +1 +1
Катенкё
Я был близок с 67 байтами, но недостаточно близко:++++++[>++++++++<-]>>>++++++++++[-<+<<+>>>]<[-<.+<.>>]<<-[>-<-]>.-.
Джулиан Лакниет
18

05AB1E , 2 байта

Код:

TL

Объяснение:

T   # Constant for 10
 L  # Range

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

Аднан
источник
4
Когда я увидел это, я почувствовал необходимость сказать «tl; dr». : P +1, кстати.
HyperNeutrino
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.

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

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

R, 4 байта

2:10

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

Forgottenscience
источник
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.
charredgrass
источник
Ninja'd по секундам: /
TuxCrafting
10

На самом деле, 9 байт

19`;1+`na

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

Объяснение:

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
Добро пожаловать в программирование головоломок и Code Golf!
Аднан
10

Mathematica - 13 байт

Echo@Range@10

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

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

Yytsi
источник
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.
Loovjo
источник
Моя мысль была >: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.
Rɪᴋᴇʀ
источник
6

PowerShell, 5 байт

1..10

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

AdmBorkBork
источник
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]

Yytsi
источник
Используйте 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.

Zwei
источник
Ницца. Я придумал iYp<C-v><C-a>1<Esc>d^9@-ZZ. Тот же счетчик байтов.
Примо
3
Короче . :)
DJMcMayhem
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]
manatwork
источник