Распечатайте числа от 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.