Роздрукувати номери від 1 до 10


42

Це може бути дуже простим завданням, але я здивований, що цього ще не робилося на коді-гольфі:

Роздрукуйте всі цілі числа від 1 до 10 включно у порядку зростання до стандартного виводу.

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

Це , тому найкоротша відповідь у байтах виграє!

Таблиця лідерів


10

17
Якщо єдиною зміною є жорстке кодування одного параметра, то воно підпадає під прапор " тривіальної зміни ", і за стандартами цього сайту все ще вважається дуппером.
Пітер Тейлор

10
@PeterTaylor Інша проблема, однак, має величезну проблему з цілими межами. Спосіб, визначений кожною мовою TC, яка не має 64-бітових цілих чисел, потребує їх реалізації. (І це впливає на досить багато мов.)
Мартін Ендер

17
@xnor Чесно кажучи, я скоріше закрию інший виклик як дублікат цього. Вимога в значній мірі її руйнує.
Денніс

9
Я не можу повірити, що кожна з (на даний момент) 71 відповіді припускає, що база повинна бути десятковою…
Skippy le Grand Gourou

Відповіді:


68

C, 36 байт

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

Це працює, тому що цикл закінчується після першого двозначного числа.


1
Немає згадки про можливість передачі параметрів функції.
Еш Бурлаценко

10
@AshBurlaczenko Про що ти говориш? Це стандартна техніка в гольфі, щоб ініціалізувати int до 1. Вам не потрібно передавати аргументи командного рядка. Фактично, це призведе до того, що програма дасть неправильний вихід.
xsot

6
@AshBurlaczenko Консенсусом ми домовились, що програми можуть припускати, що вони не будуть викликатися із зайвим введенням (у цьому випадку ніяких додаткових аргументів командного рядка, крім самої програми). Це означає, що iтут завжди буде 1, коли ця програма запускається. Ви мали на увазі щось інше?
FryAmTheEggman

2
Вибачте, я не написав C, але припустив, що значенням за замовчуванням буде 0, як у всіх мовах, якими я користувався.
Еш Бурлаценко

16
@AshBurlaczenko У C першим аргументом для основного є кількість аргументів командного рядка (включаючи саме ім'я виконуваного файлу). Оскільки ніяких додаткових аргументів не передано, це число 1. Другий аргумент для основного - це фактичний список аргументів командного рядка, але цей аргумент ігнорується в цій програмі.
Кріс Бушар

43

HTML, 44 байти

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

Це довше, ніж жорстке кодування виводу, але цікавіше цей спосіб. Він створює упорядкований список ( <ol>) з десятьма порожніми елементами списку ( <li>). За замовчуванням упорядковані списки розмежовуються десятковими числами, починаючи з 1 і періоду.

HTML5 дуже прощає щодо незакритих тегів, тому він закриває liтеги неявно.


4
+1 за зловживання прощанням HTML5 (?).
HyperNeutrino

1
Холоднокровним. Я це люблю.
ricdesi

Насправді, NinjaBearMonkey і @HyperNeutrino, це самі по собі не прощення; HTML5 досить чітко стосується того, які теги можна залишити незакритими. Просто списки та елементи списку - це два.
KRyan

41

Баш, 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

6
Останній - це просто seq / coreutils, bash не задіяний.
hyde

1
@hyde: Без башти заклик до seq не був би можливим, чи не так?
Mega Man

На моє бачення, якщо ми не залишимо їх bash, то seqбув би перекладач. Але тоді 10чинна програма на "seq" мові?
манатура

Ніколи не пробуйте цього на своїй консолі: відлуння {1..1000000000} Якщо вам цікаво, поводьтеся з власним ризиком.
Brain90

@ Brain90, на моїй бідній машині 8 Гб оперативної пам’яті немає небезпеки. ;) "Bash: brace extension: не вдалося виділити пам'ять для 1000000000 елементів". Принаймні з bash4.3.46.
манатура

24

Желе, 2 байти

⁵R

Пояснення

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

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

13
Чому на Землі хтось вигадає мову, якою команда повертає або п’ятий аргумент, або ціле число 10? ..
Андрей Костирка

14
@ AndreïKostyrka Тому що Dennis
TuxCrafting

1
Чи є кодування, де є лише один байт? Оскільки це 3 байти в UTF-8, довжина програми повинна становити 4 байти.
Радован Гарабік

2
@ RadovanGarabík Jelly використовує власну кодову сторінку
TuxCrafting

20

Brainfuck, 58 байт

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

Спробуйте в Інтернеті!


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, деякі хочуть, щоб ви заздалегідь оголосили змінну. Один компілятор ламається, якщо ім'я циклу коротше двох символів, навіть якщо ім'я циклу ніколи не використовується.



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
Barranka

@Clashsoft, це була помилка - дякую. І так, Барранка, хороший момент - підтриманий.
Забуття

13

Рубін, 8 байт

Відокремлено новими рядками.

p *1..10

* Відокремлено новими рядками.
Девід Конрад

Ви можете це зробити?
dkudriavtsev

@DmitryKudriavtsev так, зірка призводить до розбиття коду, p 1,2,3,4,5,6,7,8,9,10а коси викликають pрозділення їх новими рядками.
Значення чорнила

ГАРАЗД. Я не думав, що оператор має нижчий пріоритет перед діапазоном.
dkudriavtsev

11

Pyth, 2 байти

ST

Перший раз, коли я відповідав на теніс для гольфу!

Пояснення:

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

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
Ласкаво просимо до головоломки програмування та коду для гольфу!
Аднан

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-й ітерації, так що друк відбувається після 2-го, zщо відповідає дублюванню результату 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програм простіше, ніж пояснення. Але я спробував ... ;-)
yeti

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
Запустіть програму nao!
Cyoce

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


6

J, 6 байт

1+i.10

Вихід: 1 2 3 4 5 6 7 8 9 10

Пояснення:

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

Діапазони @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();
  }
}

EDIT: Для прихисток: Як правильно вказав @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 За винятком випадків, коли питання позначено колмогоров-складність .
Ніл

@Neil О, так. 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)

The @()необхідний для перетворення в масив

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

say @(^10+1)

Побудує діапазон [0,10), потім додає його, а потім перетворює на масив.


Для Perl 5.10 14 байт і майже як ваш:say for(1..10)
Пол Пікард

@PaulPicard зробіть це! Perl 5 - інша мова.
Вен

Чи можете ви видалити місце для say@(1..10)?
Кіос

@Cyoce, на жаль, це помилка.
Вен

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. Кількість байтів
primo




4

JavaScript, 25 24 байти

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

1
Ласкаво просимо до PPCG! Я думаю, ви можете зберегти байт, виконавши alert(i++)(і видаливши інший i++).
Мартін Ендер

Шкода, що запитання передбачає, що порядок повинен бути висхідним, інакше ви могли б зберегти байт, використовуючи декрементацію while loop замість циклу for так i=10;while(i)alert(i--).
kamoroso94

Чи код не повинен бути вбудований у функцію?
ericw31415

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.