1에서 10까지의 숫자 인쇄


42

이것은 매우 간단한 과제 일 수 있지만 아직 코드 골프에서 수행되지 않은 것에 놀랐습니다.

1에서 10까지 모든 정수를 오름차순으로 표준 출력으로 인쇄하십시오.

출력 형식은 언어가 지원하는 모든 것이 될 수 있습니다. 여기에는 임의의 구분 기호 (쉼표, 세미콜론, 줄 바꿈, 그 조합 등은 포함되지만 숫자는 없음) 및 접두사와 접미사 (예 :)가 포함 [...]됩니다. 그러나 1에서 10 이외의 숫자는 출력 할 수 없습니다. 프로그램에서 입력을받지 못할 수 있습니다. 표준 허점은 허용되지 않습니다.

이것은 이므로 바이트 단위의 최단 답변이 승리합니다!

리더 보드


10
관련 (중복?)
Luis Mendo

17
유일한 변경 사항이 단일 매개 변수를 하드 코딩하는 경우 " 사소한 변경 " 이라는 배너에 해당하며이 사이트의 표준에 따라 여전히 속임수로 간주됩니다.
피터 테일러

10
@PeterTaylor 다른 도전은 정수 한계에 큰 문제가 있습니다. 64 비트 정수가없는 모든 TC 언어가 지정되는 방식으로 구현해야합니다. (그리고 그것은 많은 언어에 영향을 미칩니다.)
Martin Ender

17
@xnor 솔직히 말해서, 나는 이것의 복제물로서 다른 도전을 끝내고 싶습니다. 요구 사항은 거의 그것을 망칩니다.
Dennis

9
나는 (현재) 71 답변의 모든 단일은 밑이 10 진수라고 가정합니다…
Skippy le Grand Gourou

답변:


68

C, 36 바이트

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

루프는 처음 두 자리 숫자 다음에 종료되기 때문에 작동합니다.


1
함수에 매개 변수를 전달할 수 있다는 언급은 없습니다.
Ash Burlaczenko

10
@AshBurlaczenko 무슨 소리 야? 이것은 int를 1로 초기화하는 골프의 표준 기술입니다. 명령 줄 인수를 전달할 필요가 없습니다. 실제로 그렇게하면 프로그램이 잘못된 출력을 생성하게됩니다.
xsot

6
@AshBurlaczenko 합의에 의해 우리는 프로그램이 불필요한 입력으로 호출되지 않을 것이라고 가정 할 수 있다는 데 동의했다. 즉 i,이 프로그램을 실행할 때 항상 1이됩니다. 다른 의미가 있었습니까?
FryAmTheEggman

2
죄송합니다, C를 작성하지는 않았지만 사용한 모든 언어에서 기본값은 0이라고 가정합니다.
Ash Burlaczenko

16
@AshBurlaczenko C에서 main에 대한 첫 번째 인수는 명령 행 인수 (실행 파일 이름 자체 포함)의 수입니다. 추가 인수가 전달되지 않으므로 해당 계수는 1입니다. main에 대한 두 번째 인수는 실제 명령 행 인수 목록이지만이 인수는이 프로그램에서 무시됩니다.
Chris Bouchard

43

HTML, 44 바이트

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

이것은 출력을 하드 코딩하는 것보다 길지만이 방법으로 더 흥미 롭습니다. <ol>10 개의 빈 목록 요소 ( <li>) 와 함께 정렬 된 목록 ( )을 만듭니다 . 기본적으로 정렬 된 목록은 1과 마침표로 시작하는 10 진수로 구분됩니다.

HTML5는 닫히지 않은 태그에 대해 매우 관대하므로 li태그를 암시 적으로 닫습니다 .


4
HTML5의 용서를 남용하는 데 +1 (?).
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

배쉬 + 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

배쉬 + 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 : bash가 없으면 seq에 대한 호출이 가능하지 않습니까?
Mega Man

우리가 떠날 경우 내 비전에서 bash다음 seq인터프리터 될 것이다. 그렇다면 10"seq"언어로 된 유효한 프로그램입니까?
manatwork

콘솔에서 절대로 시도하지 마십시오. echo {1..1000000000} 궁금한 점이 있다면 위험을 감수하십시오.
Brain90

@ Brain90, 가난한 8Gb RAM 시스템에는 위험이 없습니다. ;)“bash : 괄호 확장 : 1000000000 요소에 메모리를 할당하지 못했습니다”. bash4.3.46 이상
manatwork

24

젤리, 2 바이트

⁵R

설명

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

7
⁵R, 2 바이트
Luis Mendo

13
왜 지구에 사람이 언어를 발명 것이다의 명령 반환 중 다섯 번째 인수 나 정수 10 ..?
안드레이 Kostyrka

14
@ AndreïKostyrka Dennis 때문에
TuxCrafting

1
1 바이트 만 있는 인코딩 이 있습니까? UTF-8에서는 3 바이트이므로 프로그램 길이는 4 바이트 여야합니다.
Radovan Garabík

2
@ RadovanGarabík 젤리는 자체 코드 페이지를 사용합니다
TuxCrafting

20

Brainfuck, 58 바이트

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

온라인으로 사용해보십시오!


1
우리가 같은 속임수를 사용했다고 생각하지 않기 때문에 어쨌든 나를 이길 수 있고 더 짧아도 내 것을 게시 할 것입니다. 내 +1 :)
Katenkyo

나는 67 바이트에 가까웠지만 충분히 가까웠습니다 :++++++[>++++++++<-]>>>++++++++++[-<+<<+>>>]<[-<.+<.>>]<<-[>-<-]>.-.
Julian Lachniet


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,:)`

Luis Mendo 덕분에 1 바이트 절약

산출: [1 2 3 4 5 6 7 8 9 10]

설명 :

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 명령 중 하나 일 것입니다. 의견에 Barranka에 의해 개선.


2
벡터를 반환하지 않고 문자열을 인쇄해야하는 경우을 고려하십시오 cat(1:10).
Andreï Kostyrka

선행 공백이 있습니까?
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, 그건 실수 였어-고마워 그리고 네, Barranka, 좋은 지적-공감.
Forgottenscience

13

루비, 8 바이트

줄 바꿈으로 구분됩니다.

p *1..10

* 줄 바꿈으로 구분됩니다.
David Conrad

그렇게 할 수 있습니까?
dkudriavtsev

@DmitryKudriavtsev 예, 별표는 코드를 세분화 p 1,2,3,4,5,6,7,8,9,10하고 쉼표 p는 개행 문자로 구분합니다.
Value Ink

승인. 연산자가 범위보다 우선 순위가 낮다고 생각하지 않았습니다.
dkudriavtsev

11

Pyth, 2 바이트

ST

처음으로 골프 랭을 사용하여 대답했습니다!

설명:

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

Ninja'd by seconds : /
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
프로그래밍 퍼즐과 코드 골프에 오신 것을 환영합니다!
Adnan


10

자바 스크립트 (ES6), 29 바이트

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

출력 1,2,3,4,5,6,7,8,9,10. 가장 짧은 대답은 아니지만 재미있는 계산이라고 생각했습니다.


왜 안alert([...'1'+234567891]+0)
edc65

2
@ edc65 a) 재미 있지 않습니다. b) 이전에 게시 한 JavaScript 답변만큼 짧지 않습니다. c) 짧지 않습니다 alert([...'1234567891']+0).
Neil


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(푸시 스택 길이) 작업 중 하나에 스택에서 가져 오는 해당 작업이 없습니다. 이런 식으로 스택은 각 반복마다 하나씩 증가합니다. 이것은 루프 카운터로 남용됩니다.

이 루프는 빈 스택으로 시작하므로 첫 번째 반복은 첫 번째 반복에서 z푸시 0되므로 두 번째 이후에는 인쇄가 이루어지며 z이는 두 번째 1+d버전 의 결과와 중복 됩니다. 이런 식으로 비교 10bigger 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)

나는 당신이 이것들을 설명하기를 바랍니다 = (
Evan Carroll

@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> <>는 열렬한 코드를 작성하는 것이 좋습니다.이 오토바이 기어 검사기의 대답도 같은 맥락에 있습니다.)
Aaron


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였지만 같은 것입니다.
Dane

6

하스켈, 17 바이트

main=print[1..10]

출력 [1,2,3,4,5,6,7,8,9,10].


나는 여기에 약간 혼란스러워 ... 나는 그것이 틀림 없다고 확신합니다 [1..10]. 하스켈 컴파일러에 액세스 할 수 없지만 아침에 다시 확인하겠습니다.
Zwei

@Zwei Ranges의 하한에는 상한이 포함되지 않습니다.
C. Quilley

1
@ C.Quilley 그들은 완전히한다. 파이썬을 생각하고있을 것입니다.
xnor

허, 나는이 코드를 테스트했다고 확신했다. 이전 주장에 대한 사과.
C. Quilley

1
나는 당신이 main = 부분이 필요하다고 생각하지 않습니다. 나머지는 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();
  }
}

편집 : funsies 들어 : 올바르게 의해 지적 @SkippyLeGrandGourou 은 1 내지 10의 염기 질문에 지정되지 않으므로 여기 (비 - 코드 - golfed) 자바 코드 그베이스 (2)으로의 출력을 1 ~ 10 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++)는 1 바이트를 절약 할 수 있습니다 .
Clashsoft

@ zyabin101 하드 코딩 된 답변이 경쟁이되지 않도록 순서가 변경되었습니다. 하드 코딩 된 것이 자바 7에서 1-10을 인쇄하는 가장 짧은 방법이기 때문에 여전히 재미 있고 답이
남았습니다

2
@ zyabin101 질문에 kolmogorov -complexity 태그가 붙은 경우를 제외하고 .
Neil

@ 닐 아, 맞아. o_o
user48538

1
람다 덕분에 Java 8이 확실한 승자입니다! ()->java.util.stream.IntStream.range(1,11).forEach(System.out::println). 왜 더 길다고 말합니까? Java 8입니다. Java 8은 기본적으로 더 짧습니다! 코드 앞뒤에 중괄호도 넣지 않았습니다! 추가 캐릭터를 얻지 않고도 98까지 셀 수 있습니다! 보다? 자바 8 규칙!
Olivier Grégoire

6

펄 6, 12 바이트

say @(1..10)

@()배열로 변환 할 필요

대체 솔루션 :

say @(^10+1)

범위 [0,10)을 작성한 다음 하나를 더한 다음 배열로 변환합니다.


Perl 5.10, 14 바이트 및 거의 같은 것 :say for(1..10)
Paul Picard

@PaulPicard는 게시하십시오! Perl 5는 다른 언어입니다.
Ven

당신은 공간을 제거 할 수 있습니까 say@(1..10)?
Cyoce

@Cyoce 아아 아뇨, 오류입니다.
Ven

5

Python2 - 19 17 바이트

print range(1,11)

Kenny가 아닌 KevinLau 덕분에 1 바이트가 절약되었습니다 !

산출: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


Python 2를 가정하여 range대신 xrange에을 사용하십시오 . 실제로이 현재 버전은 어느 파이썬 버전에서도 내 컴퓨터에서 작동하지 않는 것 같습니다.
밸류 잉크

@ 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

그루비, 11 자

print 1..10

샘플 실행 :

bash-4.3$ groovy -e 'print 1..10'
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

4

자바 스크립트, 25 24 바이트

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

1
PPCG에 오신 것을 환영합니다! 나는 당신이 alert(i++)(그리고 다른 것을 제거하여 i++) 바이트를 절약 할 수 있다고 생각합니다 .
Martin Ender

질문이 너무 나쁘다는 것은 순서가 오름차순이어야한다고 명시하고 있습니다. 그렇지 않으면 for 루프 대신 감소하는 while 루프를 사용하여 바이트를 저장할 수 i=10;while(i)alert(i--)있습니다.
kamoroso94

코드를 함수에 포함시키지 않아도됩니까?
ericw31415 2016 년

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.