코드 길이의 두 배 출력 생성


85

도전

프로그램 길이보다 2 배 많은 바이트를 표준 출력에 쓰는 완전한 프로그램을 작성하십시오.

규칙

  • 프로그램은 ASCII 문자를 표준 출력에 기록해야합니다.

  • 출력 내용은 중요하지 않습니다.

  • 보너스를 충족하지 않는 한 바이트 단위로 측정 한 출력 은 프로그램 길이의 정확히 두 배 여야하며 바이트 단위로 측정해야합니다 .

  • 후행 줄 바꿈은 출력의 바이트 수에 포함됩니다.

보너스

프로그램은 선택적으로 숫자 n를 입력으로 사용할 수 있습니다. 그렇다면 출력은 정확히 n * program length바이트 여야합니다 . n 은 항상 양의 정수 라고 가정 할 수 있습니다 . 입력이 없으면 n기본값은 2입니다.

이렇게하면 점수에서 25 바이트를 뺄 수 있습니다.

최단 프로그램이 이깁니다.

제한 사항

  • 표준 허점이 없습니다.

  • 프로그램의 길이는 1 바이트 이상이어야합니다.

  • 길이를 변경하기 위해 소스 코드에 불필요한 공백을 추가하지 않아도됩니다. 마찬가지로 댓글도 포함되지 않습니다.

  • 보너스를 이행하지 않으면 프로그램은 입력을받지 않아야합니다. 보너스를 이행하면 정수만 입력해야합니다.

최저 점수 (바이트 단위의 프로그램 길이-보너스)가 이깁니다.

각 언어에 대한 최단 답변이 해당 언어에서 승리 합니다 .

리더 보드

다음은 일반 리더 보드와 언어 별 수상자 개요를 생성하는 스택 스 니펫입니다.

답변이 표시되도록하려면 다음 마크 다운 템플릿을 사용하여 헤드 라인으로 답변을 시작하십시오.

# Language Name, N bytes

N제출물의 크기는 어디에 있습니까 ? 당신이 당신의 점수를 향상시킬 경우에, 당신은 할 수 있습니다 를 통해 눈에 띄는에 의해, 헤드 라인에 오래된 점수를 유지한다. 예를 들어 :

# Ruby, <s>104</s> <s>101</s> 96 bytes

헤더에 여러 숫자를 포함하려는 경우 (예 : 점수가 두 파일의 합계이거나 인터프리터 플래그 페널티를 별도로 나열하려는 경우) 실제 점수가 헤더 의 마지막 숫자 인지 확인하십시오 .

# Perl, 43 + 2 (-p flag) = 45 bytes

언어 이름을 링크로 만들어 리더 보드 스 니펫에 표시 될 수도 있습니다.

# [><>](http://esolangs.org/wiki/Fish), 121 bytes


1
보너스로 출력이 정확히 n * program length바이트 여야 합니까, 아니면 최소값입니까?
— xnor

2
정확해야합니다
— Daniel M.

3
음수 점수를 처리하려면 코드 스 니펫을 수정해야합니다.
— El'endia Starman

40
-25의 보너스는 기본적으로 마이너스 점수를 얻을 수 있기 때문에 일부 언어에서는 필수입니다. 앞으로는 백분율 보너스를 사용하거나 답변을 원할 경우 보너스로 질문하는 것이 좋습니다. 또는 보너스가 없습니다.
— xnor

4
"입력이 제공되지 않음"에 대해 빈 문자열이 전달되었다고 가정합니까? 입력을 입력하지 않고 프로그램이 대기중인 사용자를 처리하는 방법을 알 수 없습니다.
— xnor

답변:


138

HQ9 + , 2 바이트

QQ

출력

QQQQ

나는 그것이 금지되어 있지 않다고 생각합니다.


14
금지되지는 않았지만 그다지 중요하지는 않습니다. 잠깐, 8 개의 공감대는 어떻게 얻었습니까?
— John Dvorak

58
@JanDvorak HQ9 +를 싫어하는만큼, 이것은 나에게 창조적 인 용도입니다. 이 사용법은 HQ9 +가 만들어 졌을 때 예상되지 않았으며, 이는 대부분의 다른 Hq9 + 프로그램에서 말할 수있는 것 이상입니다. 나에게서 +1
— Digital Trauma

13
Q가“프로그램의 소스 코드”를 인쇄한다는 것을 몰랐습니다. 방금 Q를 인쇄했다고 생각했습니다.
— Timwi

7
@ LegionMammal978 기술적으로 이것은 지속적인 출력 문제이므로 프로그래밍이 아닌 언어가 허용됩니다.
— 스파게티

3
이것은 120 표입니다. QQ통역사 입력 1,200 명
— Stan Strum

95

셰익스피어, 768

네, 셰익스피어는 골프 언어가 아닙니다. 1,536 개의 공백을 출력합니다.

Rosencrantz and Guildenstern: A Series of Tedious Events.

Rosencrantz, a count of extraordinary determination.
Guildenstern, a spacy character.

Act I: The Long Conversation

Scene I: A Tortured Friendship

[Enter Rosencrantz and Guildenstern]

Rosencrantz:
 You are a gentle, noble, valiant, loyal, loving companion.

Guildenstern:
 You are nothing!

Scene II: Asking the Hard Questions

Rosencrantz:
 Speak your mind.

Guildenstern:
 You are as fair as the sum of yourself and a daisy. Are you as
 daring as the sum of a big, bold, fiery, feisty, rough, rowdy,
 ham-fisted, hawk-eyed, broad-shouldered, bright-eyed lad and a
 large, yellow, vicious, hairy, wild, scary, long-tailed,
 sharp-clawed, small-eared lion?

Rosencrantz:
 If not, let us return to scene II.

편집 : 256

알았어, 실제로 골프를 할게 위의 내용은 손으로 직접 작성했기 때문에 기존 셰익스피어 구현에서는 컴파일되지 않습니다 (그러나 정확성을 방어 할 준비가되어 있습니다).

아래는 spl-1.2.1에서 하나의 경고와 함께 C로 변환되며 512 공백을 출력합니다.

Ummm.Ajax,1.Puck,2.Act I:I.Scene I:A.[Enter Ajax and Puck]Ajax:You old old old old old cow.Puck:You are zero!Scene II:B.Ajax:Speak thy mind.Puck:You are the sum of you and a red cat.Are you as big as the square of me?Ajax:If not, let us return to scene II.

15
실제로 골프를한다면 +1이됩니다.
— lirtosiast

1
이것이 어떤 방식의 whitchcraft입니까? 나는 그런 일이 존재하는지도 몰랐습니다 ...
— Malavos

10
와우, 당신은 골프를 쳤다. 거룩한 피난처.
— Malavos

2
@Malavos 난 그냥, 미안 해요 당신이 마법 맞춤법이 틀린 방법에 대해 농담 - 모두가 무엇을하는 것은 아마 괜찮 니
— 고양이

2
아니요, 공격적이거나 방어적인 것처럼 들리면 용서를 구합니다. 나는 단지 Futurama를 언급하고 있었다! :) 진지하게 말하지만, 나는 여전히이 대답에 놀랐습니다. 우리는 사이트에 더 많은 것들이 필요합니다.
— Malavos

69

리콜, 17 바이트

................!

NOOP 16 개 그런 다음 디버거 !가 호출되고 메모리를 콘솔에 덤프합니다. 메모리가 비어 있지만 헤더 길이는 34 바이트입니다.

-- STATE DUMP --
----------------

여기에서 시도 하십시오 .


13
이것은 더 멋진 답변 IMO 중 하나입니다.
— 고양이

67

Mathematica REPL, 1 바이트

#

인쇄 #1합니다.


14
질문은 "완전한 프로그램 작성"이라고 말합니다. 이것은 단지 REPL 스 니펫입니다.
— LegionMammal978

60

CJam, -17 바이트

r2e|i8,*

소스 코드의 길이 는 8 바이트 이며 보너스 는 -25 바이트 입니다.

CJam 통역사 에서 온라인으로 사용해보십시오 .

작동 원리

r         e# Read a token from STDIN.
 2        e# Push 2.
  e|      e# Logical OR; keep the token if it's not empty, 2 otherwise.
    i     e# Cast to integer.
     8,   e# Push [0 1 2 3 4 5 6 7].
       *  e# Repeat the array the corresponding number of times.

4
쓰레기. 잘 했어.
— The_Basset_Hound

1
음수 바이트는 어떻습니까?
— Nick T

3
@NickT 8 바이트 (소스 코드)-25 바이트 (보너스).
— 데니스

16
디스크 공간이 부족한 경우 수백만 개의 사본을 저장할 수 있습니다.
— Robert Fraser

아니요, 메타 데이터가 긍정적이라고 생각합니다.
— CalculatorFeline

47

파이썬 2.6, 10

print`-.1`

-0.1000000000000000120자인을 인쇄합니다 .

문자열 repr은 더 정밀함을 보여줍니다. print-.1그냥을 제공 -.1하고 13 자리의 정확도 만 print.1/3제공 0.0333333333333합니다.


5
이것은 더 이상 작동하지 않습니다 파이썬 2.7 또는 3.1.
— Anders Kaseorg

@AndersKaseorg 그렇다면 repl.it 이 틀렸습니까?
— mbomb007

2
@ mbomb007 분명히. GitHub는 이것이 유일한 잘못은 아니라고 제안합니다. Ideone은 CPython에 동의합니다.
— Anders Kaseorg

다른 답변과 동일한 의견 : 21 줄의 출력을 제공하는 후행 줄 바꿈이 인쇄되지 않습니까?
— Martin Ender

1
당신은 의미 print`+.1`합니까?
— mbomb007

46

씨 , 10 바이트

4 56111240

이것은 Befunge 프로그램으로 컴파일됩니다 (무차별 대입)

9k.@

실행할 때 다음 20 바이트를 생성합니다 (CCBI에서 테스트 한 후행 공백에 유의).

0 0 0 0 0 0 0 0 0 0 

Befunge 98에 익숙하지 않기 때문에이 사양을 몇 번 다시 확인해야했습니다.

  • k IP가 반복 명령으로 이동하여 의도 한 것보다 한 번 더 실행되어 나에게 꽤 깨진 것처럼 보입니다.
  • Befunge 98의 스택은 맨 아래에 0이 무한합니다
  • . 숫자로 출력 한 다음 공백으로 출력

18
...... 그냥 .... 할 수 없습니다.
— Daniel M.

44

R, 3 2 바이트

암호

!0           # NOT FALSE

출력

TRUE

와우, 드디어 R

그것은 {}작동하는 것처럼 보이며 출력됩니다.NULL

보너스 33 16 바이트 :

암호

rep(1,number*16)

출력

# if number is not defined
> rep(1,number*16)                     
> Error: object 'number' not found     # output is 32 (or 2*16) bytes long error

# if number is defined
> number = 3                            
> rep(1,number*16)                     # output is 16*number bytes long
> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2
변수에 "숫자"라는 이름을 사용하는 것이 "소스 코드에 불필요한 공백을 추가하는"것과 동일하지 않기를 바랍니다.
— Mutador

26

Matlab, 7 5 바이트

@flawr 덕분에 2 바이트 감소!

123;3

산출:

여기에 이미지 설명을 입력하십시오

출력에는 10 바이트 가 포함 됩니다.newline ans = newline newline 3 newline


1
아무도 format compact기본값을
— 갖지

2
@sanchises :-) 예, Matlab의 환경 설정 방법에 따라 다릅니다. 그러나 format loose는 IS 기본 환경 설정
— 루이스 Mendo

2
어때요 123;4? 3 바이트가 짧습니다 =)
— flawr

@flawr 좋은 생각이야! 직접 게시하십시오!
— Luis Mendo

아니요, 귀하의 답변에서 너무 많은 영향을 받았습니다 =)
— flawr

25

JavaScript, 2 바이트!

3 바이트 솔루션보다 짧습니다.

!0

true실행 후 반환 합니다.


2
이것은 REPL 환경에서만 작동합니다
— Cyoce

21

파이썬 2, 11

print`id`*1

내장 id문자 의 문자열 표현 ( 22 자)을 인쇄하십시오 .

<built-in function id>

은 *111 개 문자에 코드를 얻는 것입니다. 당신은 또한 할 수 있습니다 print id;00.

더 지루한 대안 11은 다음과 같습니다.

print'1'*22
print 9**21

나는 복잡한 숫자를 가지고 놀았지만 불행히도 print.8/-9j하나의 문자가 짧습니다
— Sp3000

이것으로 후행 줄 바꿈을 인쇄하여 출력 바이트 수를 23으로하지 않습니까?
— Martin Ender

1
@ MartinBüttner이 규칙은 나중에 편집되었지만 print id,;1후행 줄 바꿈을 억제 하기에 충분하도록 규칙을 변경했습니다 . 후행 공백도 추가하지 않습니다.
— xnor

@xnor print 9**21가 작동하지 않습니다. 21 자입니다. print 9**23그래도 작동
— Koishore Roy

18

dc, 10-25 = -15

2?A*Ar^1-n

"입력 없음"에 대해 빈 줄을 사용합니다.

10 ^ (10 * n)-1을 계산합니다. 여기서 n은 입력이거나 입력이 비어 있으면 2입니다. 9필요한 길이 의 s 문자열을 인쇄합니다 .

  • 2 입력이 비어있는 경우 2를 스택으로 푸시
  • ? 입력을 스택으로 푸시
  • A스택으로 푸시 (10) (DC 단축키를 갖는다 A- F10 - 15)
  • * 두 번 튀기고 곱하기 (10을 곱한 값)
  • A 스택에 10을 밀어 넣습니다
  • r 상단 두 스택 요소 반전
  • ^ 지수 10 ^ (10 * 입력)
  • 1- 스택 상단에서 1 빼기
  • n 줄 바꿈없이 인쇄합니다.

멍청 아, 정말 똑똑해 그리고 코드 길이가 운이 좋으면 :) 그러나 어쩌면 시작하지 않은 것에 대한 작은 설명을 추가해야 할 것입니다. 그리고 줄 바꿈이 중요하다고 생각하므로 n대신에 사용해야 합니다 p.
— daniero

17

TI 기본, 3 바이트

1ᴇ5

인쇄 100000합니다.


실제로 줄 바꿈이 중요하다고 생각하므로 01 바이트 만 할 수 있습니다 .
— lirtosiast

1
어때요 ᴇ3? TI-Basic에는 개회식이 없기 때문에 @lirtosiast에 대해 회의적입니다.
— Jakob

16

Brainfuck, 14 바이트

+++++++[....-]

이것은 약간의 수학 연습입니다. 의는의 수를 나타내는하자 +에 의한 코드 문자 a, 그리고 숫자 .로 문자를 b.

이 코드 a*b는 a아래에서 값까지 바이트를 출력 합니다 1(ASCII 이외의 바이트이지만 사양에 따라 정상으로 보입니다). 코드의 길이는 a+b+3입니다. 그래서 우리는

a*b = 2 * (a+b+3)

a와 b에 대해 다른 값을 시도 하면에 대한 최소값 a+b+3이 달성됩니다.

a = 4       or       a = 7
b = 7                b = 4

베테랑 brainfuck 프로그래머는 +[[>....]-<<+]옵션 을 발견합니다 .
— orthoplex

@orthoplex 내가 당신의 코멘트를 읽을 때 나는 즉시 portmanteau'd brainfuck 및 프로그래머 : brainfucker
— Poke

15

gs2 , -18 바이트

CP437 :W↕0!↨.2

육각 덤프 : 57 12 30 21 17 2e 32

WSTDIN에서 숫자를 목록으로 읽습니다. ↕0목록에 2를 추가 !하고 첫 번째 요소를 추출합니다. 그런 다음 ↨.(목록 )이 여러 번 [0,1,2,3,4,5,6]반복됩니다 ( 2).

이 데니스의 CJam 응답과 매우 유사 - GS2은 결합 r및 i한 바이트로.

참고 : gs2이 작업을 수행 하려면 구현 에서 버그를 수정 해야했습니다. 이전에 각 프로그램에는 숨겨진 개행이 출력에 추가되어 완전히 의도하지 않았습니다. 이 프로그램을 해결하려고 시도한 후에 만 ​​나타났습니다 (언어는 모든 문제에서 후행 줄 바꿈을 무시하는 무정부 상태 골프 용으로 설계되었습니다). 소금.


1
첫 번째 GS2 답변 카드에 맞는 문자가없는 것을 보았습니다!
— Cyoce

14

펄 5, 16 바이트-25 = -9

$_ =$]x($_*2||4)

이것은 문제에 대한 이상한 접근 방식입니다.

-p명령 행 인수로 실행하십시오 .

더 많은 텍스트를 인쇄하기 위해 특수 변수를 사용하여 바이트 수를 줄이는 Perl 답변이 아래에 있습니다. 그래서 훨씬 더 자세한 특수 변수를 사용했습니다. 변수 이름이 2자인 8자를 인쇄합니다. 따라서, (16)의 바이트 카운트와 함께, 그 출력 (그 16 있도록 하나 개의 공백 패딩) 2 * $]여기서 $]으로서 인쇄 펄 버전 5.xxxxxx펄 버전에 의존한다. 입력 없이는 같게 그 네 번 인쇄 8*4또는 32이중 코드의 바이트 수이다.

나는 Perl을 좋아한다.


나는 이것이 빈 입력에 실패한다고 생각합니다. 규칙에 따라, 입력이 제공되지 않으면 배수는 기본적으로 2로 설정되어야합니다.
— Alex A.

@AlexA. 젠장, 나는 그것을 그리워했다. 골프 코딩이 처음입니다. 들어오는 내용을 편집하지만 perl에서 더 창의적으로 수행하는 방법을 모르기 때문에 답변에 많은 문자가 있습니다. (
— Codefun64

2
안녕, 프로그램 스크립트에 기본적으로 당신을 도울 수있는 몇 가지 더 팁 pop과 shift에 작동 @ARGV(A에서 sub그들이 작업 @_) 그래서 당신이 뭔가를 할 수 좋아 $n=pop||2아래 첫 번째 코드 블록을 얻기 위해, 당신은이 ;}말에 거의 항상 }다른 것을 저장하기 만하면 됩니다. 당신이 더 많은 문자를 저장 도움이 될 뭔가 문자열 반복 연산자입니다 x고려 print 1x20... 또는 그 라인을 따라 뭔가 : 희망하는 데 도움이!
— Dom Hastings

@DomHastings Man, 감사합니다! 나는 당신의 도움으로 총 2 바이트로 줄었습니다 :) 제안 해 주셔서 감사합니다.
— Codefun64

1
나는 당신이 이것을 줄일 수 있다고 생각합니다 print"n"x(21*pop||42). 명령 행에서 실행perl -e'print"n"x(21*pop||42)' 3 | wc -c
— hmatt1

14

Pyth , 10 9-25 = -16

Dennis의 -1

**N9?zvz2

[입력] * 9 따옴표를 입력하거나 입력이 비어 있으면 2 * 9를 인쇄합니다.

isaacg는 여기에 더 짧은 대답이 있습니다

Pyth , 1 바이트

T

인쇄 10합니다. 10으로 초기화되는 내장 변수입니다.


.x가 오류와 함께 작동하면 유용합니다. 왜 그렇지 않은가에 대한 정당성이 있습니까?
— lirtosiast

2
내 최선의 추측은 Q실제 코드가 실행되기 전에 Pyth가 입력을 평가하게하는 것입니다. **N9.xvz2예상대로 작동하지만보다 짧지 않습니다 **N9?zvz2.
— Dennis

2
후행 줄 바꿈은 출력의 바이트 수에 포함됩니다. T출력 10과 개행. 사용 d, 그것은 줄 바꿈이 추가되는 공간입니다
— Stan Strum

9

마카로니 0.0.2 , 23 자

print tobase pow 32 9 2

32 9 를 이진수로 인쇄 1000000000000000000000000000000000000000000000합니다.이 문자는 후행 줄 바꿈없이 46 자 길이 ( ) 로 편리하게 나타납니다 .


9

자바 스크립트, 4 바이트

~$ cat main.js
+1/0
~$ nodejs main.js
Infinity

나는 이것이 ES6없이 가능한 가장 짧은 JS 솔루션이라고 생각합니다 : P


어떤 NodeJS 버전이 있습니까? 이것은 내 것과 함께 작동하지 않습니다.
— Dennis

1
Firefox 콘솔에서도 작동합니다.
— n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

1
후행 줄 바꿈은 출력 길이에 포함되어야합니다.
— lirtosiast

v0.10.40인쇄 명령이 없기 때문에 Node.js 는 아무것도 인쇄하지 않습니다. Node.js의 다른 버전이 있습니까 아니면 라인의 평가를 인쇄하는 쉘에서만 작동합니까? (이 경우이 답변이 유효하지 않다고 생각합니다).
— Nateowami

4 바이트? 실제로 올바른 크기로 만드십시오.
— Star OS

9

C, 27 25

main(){printf("%50f",0);}

• 2 바이트를 시작해 주셔서 감사합니다 @Titus


그리고 C에서 경쟁하지 않는 16 바이트 솔루션의 경우 https://codegolf.stackexchange.com/a/111330/16513으로 이동하십시오.

^ 오류 코드가 컴파일러에 따라 달라질 수 있기 때문에 비경쟁이라고 말합니다. 또한 해당 솔루션에서 GCC를 사용하고 있습니다. 또한 그것이 규칙 1을 위반하는지 여부를 확신하지 못합니다. 아마도 그렇게 생각합니다.


1
나는 그것이 유효한 C 프로그램으로 계산되지는 않지만 main(){printf("%0.XXf",0);}작동 한다고 생각 합니다.
— wefwefa3

2
@Zereges 아니요, C에는 일반적으로 적절한 요소없이 물건을 사용할 수있게하는 "암시 적 선언"규칙이 있습니다 #include. 컴파일러는 경고를 내고 때로는 충돌을 일으키지 만 일반적으로 작동 합니다.
— 아나톨리 크

1
@AlbertRenshaw 또한 여기에서 작동한다고 생각하지 않습니다 .
— Zereges

1
27 * 2! = 38입니다.
— mbomb007

1
@ 제 레지스. 이 코드는 정의되지 않은 동작을 나타내지 않습니다. "암시 적 선언"및 "암시 적 반환 유형"기능은 최근 표준에서 더 이상 사용되지 않지만 그 사용법은 여전히 ​​허용되며 결과가 잘 정의되어 있습니다. 이러한 기능을 사용하면 정의되지 않은 동작이 발생할 수 있지만이 코드에는 해당 기능이 포함되지 않습니다.
— Peter

7

V , 2 바이트

4é

이 출력

ÿÿÿÿ

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

설명

이것은 정말 해킹 적 인 답변이며 V의 내부를 악용하여 작동합니다. 본질적으로 작동하는 방식은 ÿV의 명령으로 프로그램이 끝났다는 신호이며 보류중인 명령은 완료되어야합니다. 그렇지 않으면 일부 암시 적 결말이 작동하지 않으며 해석이 더 자주 중단됩니다. 이 명령은 프로그램 종료시 자동으로 여러 번 전송되며 대부분 출력에 영향을 미치지 않습니다.

é단일 문자를 삽입하는 명령입니다. 그러나 원시 바이트를 가져 와서 ÿ"end"로 해석하지 않고 "삽입해야하는 문자"로 해석합니다. 4é이 문자를 1 개 대신 4 번 삽입합니다.


7

bash, 11 바이트

다음은 데이터 압축 도구의 유쾌한 사용법입니다 :) ...

gzip -f<<<2

다음은 출력의 16 진 덤프 (22 바이트)입니다.

0000000: 1f 8b 08 00 e3 ce 32 59 00 03 33 e2 02 00 90 af  ......2Y..3.....
0000010: 7c 4c 02 00 00 00                                |L....

22 바이트의 "확장 ASCII"(예 : 문자 당 8 비트)를 출력합니다. 질문 게시물에 대한 의견을 읽으면 OP의 ASCII 정의를 충족시키는 것 같습니다.
— Wossname 2016 년

에 TIO 나는 16를 얻었으나, 내 리눅스 머신에, 나는 34 있어요
— 스탠 스트 럼

@StanStrum, TIO가 무엇인지 모르겠지만 Linux에서 34는 이상합니다. 아마도 다른 스위치를 정상으로 사용하기 위해 gzip 별칭이 있습니까?
— Wossname

그것이 사실인지 모르겠지만, 이상하게 보입니다. 이 프로그램을 @Wossname
— Stan Strum에서

1
나는 그 사람이 아니며, 새로 얻은 129 명의 담당자 tyvm을 이용하지 않을 것입니다. Linux 설치에서 작동하는 버전을 만들 수 있는지 확인할 수 있습니다.
— Stan Strum

6

dc, 19-25 = -6

2?19*[1n1-d0<l]dslx

숫자를 가져 와서 (2는 백업으로 스택에 푸시 됨) 19를 곱합니다. 1줄 바꿈을 인쇄 하지 않고 숫자를 줄입니다. 숫자가 0보다 큰 루프.


6

C ++, 80 바이트

#include<iostream>
int main(){int i=0;while(i<20){std::cout<<&i;i++;}return 0;}

개행 문자는 두 문자입니다. (원치 않는 경우 동일한 바이트 수로 돌아가려면 i <20을 i <= 19로 변경하십시오.)

샘플 출력 (매번 변경됨)

0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C0088FA0C

동일한 8 문자 메모리 주소 20 번.


몇 가지 골프 힌트 : for루프는 루프보다 짧고 while버팀대를 떨어 뜨릴 수 있으며 사용하기가 약간 저렴 하고 문자열 cstdio만 printf있으며 아무것도 반환 할 필요가 없습니다.
— Luke

63 바이트로 접근 방식을 제거 할 수 있습니다. #include<iostream> int main(){for(int i=10;--i;)std::cout<<&i;}그러나 약간 다른 접근 방식으로 이미 짧은 대답이 있습니다.
— movatica

6

CJam, -9

q_,{i}{;2}?G*'X*

설명

  • q_,

전체 입력을 읽고 밀어 넣은 다음 길이를 밀어 넣습니다.

  • {i}{;2}?

입력 길이가 0을 초과하면 정수로 변환하십시오. 그렇지 않으면 입력을 팝하고 2를 누릅니다.

  • G*

16 (프로그램 길이)을 누른 다음 입력이 없으면 입력에 2를 곱합니다.

  • 'X*

X를 밀어 스택의 상단에 곱합니다.


@ThomasKwa 으악. 몇 초 안에 업데이트 중입니다.
— The_Basset_Hound

쉼표가 필요하지 않습니다,하지만 당신은 피할 수 "만약"모두 당신이 할 경우 논리적 "또는" q2e|i당신에게 당신이 원하는 번호를 줄 것이다
— aditsu

또한 'X 대신 S를 사용할 수 있습니다. 유일한 문제는 출력을 선택할 때까지 출력을 볼 수 없다는 것입니다 (오프라인으로 실행하고 파일로 리디렉션하면 문제가되지 않습니다)
— aditsu


조건부로도이를 줄일 수 있습니다. 빈 문자열은 이미 거짓이므로 길이를 계산할 필요가 없습니다. 빈 문자열은 출력에 기여하지 않기 때문에 스택에서 빈 문자열을 팝 할 필요가 없습니다. 또한 yo는 else 분기의 괄호를 피할 수 있습니다. 나는 대답 중 하나를보기 전에 이것을 생각해 냈습니다 r_{i}2?SB**.
— Reto Koradi

6

> <> , 19 + 2 (-v 플래그)-25 = -4 바이트

l?!2f4+*v
-1o;!?::<

여기에서 테스트하십시오!

감사합니다 Cole and Sp3000

먼저 스택 길이가 0 인 경우 스택 길이를 확인합니다. 이 숫자에 21 (코드 길이)을 곱한 다음 해당 숫자의 유니 코드 표현을 출력하고 1 씩 줄입니다. 0까지 반복됩니다. (브라우저가 표시하지 않으므로 문자를 보려면 출력을 검사해야합니다)


1
네, 대답을 망치게해서 미안합니다. (하지만 기분이 나아지면 답보다 짧습니다.) 편집 : whoops가 너무 빨리 Enter 키를 누르십시오. 현재 상태 그대로의 항목은 "n은 항상 양의 정수라고 가정 할 수 있습니다. 입력이 제공되지 않으면 n은 기본적으로 2로 설정해야합니다." 또한 너무 많은 문자를 인쇄 할 수 있다고 생각합니다 (14에서 0이 아니라 14에서 0으로 15 자). 내가 맞다 l0=?2f6+*v면 첫 번째 줄과 1-::0=?;o>두 번째 줄이 올바르게 해야합니다.
— cole

흠, 무슨 뜻인지 모르겠어 어떤 경우에도 0을 인쇄해서는 안됩니다. 이 문자 카운터 를 적어도 28 자로 사용하는 초기 스택 출력 (편집 : 붙여 넣을 수없는 것들)으로 2를 넣으십시오 .
— torcado

당신이 지금 무슨 말을하는지 이해합니다. "프로그램은 선택적으로 숫자 n을 입력으로 취할 수 있습니다"를 해석했습니다. 입력이 2이면 답을 편집하겠습니다. 감사합니다! (또한 숫자 대신 문자열을 사용하여 일부를 저장할 수 있습니다)
— torcado

특히 <> 인 경우 도와 드리겠습니다.
— cole

2
?!보다 일반적으로 더 나은0=?
— SP3000

6

자바 스크립트 (ES5), 68 바이트-25 보너스 = 43

alert(Array(1+(+prompt()||2)).join(document.scripts[0].textContent))

(브라우저가 보안상의 이유로 스 니펫을 실행할 수없는 경우이 바이올린을 시도하십시오 http://jsfiddle.net/thePivottt/c3v20c9g/ )

이 스크립트는 적어도 DOM3 (포함 Node.textContent) 및 ECMAScript 5 (또는 이전 버전)를 따르는 브라우저에서만 작동합니다 . 나는 가능한 한 표준을 준수하고 호환되도록 노력했습니다. 또한 스크립트가 script문서 의 첫 번째 요소에 있다고 가정합니다 .

그것은 실제로 스크립트 자체의 여러 복사본을 연결해, 꽤 멋진을 . SE의 스 니펫 도구는 스크립트 주위에 여분의 공백을 둡니다. 우리는 공백을 무시할 수는 .trim()있지만 SE의 방해없이 프로그램이 완벽하다고 생각할 필요는 없습니다. 이 HTML5 파일을 완벽하게 실행하려면 파일을 저장하십시오.

<!DOCTYPE html>
<html>
  <head>
    <title>Minimalist HTML5 page</title>
    <script>alert(Array(1+(+prompt()||2)).join(document.scripts[0].textContent))</script>
  </head>
</html>

이 스크립트는 사용 prompt하고 alert있기 때문에 console.log대부분의 최신 브라우저를 사용하는 경우에도 표준의 일부가 아닙니다. 전달 된 반복 수가 유효하지 않거나 비어있는 경우 기본값은 2입니다. 입력이 10 진수 인 경우 유효하지 않은 배열 길이로 인해 프로그램이 충돌합니다.

이 코드는 JavaScript의 몇 가지 흥미로운 기능을 사용합니다.

  • Array(1+(+prompt()||2))

    • Array(INT) INT 셀의 배열을 만듭니다.

    • +prompt()입력을 받아 숫자로 바꿉니다. 입력을 문자열로 전달하면 Array함수는 단순히 단일 요소 배열로 래핑합니다.

    • +prompt()||2입력이 true 이면 입력을 리턴하고 그렇지 않으면 2를 리턴합니다.

    • 이 전체 코드는 N 개의 빈 요소 배열을 작성합니다. 여기서 N은 요청 된 반복 횟수보다 하나 이상입니다.

  • .join(document.scripts[0].textContent)

    • 배열의 join(STRING)메소드는 모든 셀을 연결하여 제공된 STRING을 값 사이에 배치하여 문자열을 작성합니다. 이 프로그램 에는 배열에 N + 1 개의 빈 요소가 있거나 정확히 N 개의 스팟이 있습니다. 결과는 제공된 STRING의 N 배를 포함하는 문자열입니다.

    • document.scripts[o]<script>문서 의 첫 번째 요소입니다.

    • textContent의 Node인스턴스는 그들과 스크립트를 포함하여 자신의 자식 노드, 내부에있는 전체 텍스트를 반환합니다.


ES6을 사용 str.repeat하고 코드 자체를 출력하는 경우 점수가 26으로 낮아 지지만 너무 지루합니다 .P
— Domino

음, 26이 어디에서 왔는지 모르겠는데 이제 33 살이됩니다. 잠을 좀 자야 할 것 같습니다.
— Domino Domino

일부 브라우저 설정은 스 니펫에서 프롬프트를 사용하지 못할 수 있습니다. 실행하기 위해 저장해야 할 수도 있습니다.
— Domino 님

6

자바 스크립트 ES6, 33-25 = 8

(a=2)=>Array(a*33).fill(0).join``

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


이 코드를 콘솔에서 실행할 수없는 것 같습니다. 맞아? "Uncaught SyntaxError : Unexpected token =>"
— Malavos

@Malavos 최신 Firefox와 같은 es6 호환 브라우저가 필요합니다. Chrome은 기본 인수 afaik을 지원하지 않습니다
— DankMemes

UCBrowser를 사용하고 있지만 맞습니다! 어쨌든 크롬과 도마뱀을 기반으로합니다. 매일 밤 그것을 시도, "000000000000000000000000000000000000000000000000000000000000000000"를 얻었다. 좋은! 코드를 설명해 주시겠습니까? 나는 초보자입니다.
— Malavos

2
@Malavos 하드 코딩 된 코드 33는 실제로 코드 길이입니다. 이 길이의 새로운 배열 생성 을 채우고 상기 OP 당 2 디폴트 입력 매개 변수, 그리고 결합 된 문자열을 반환한다. 33*aa
— DankMemes

2
하나 개의 추가 요소 배열을 만들면 당신은 가입으로 채울 수 Arrary(1+a*<length>)와join`0`
— 숀 H

5

줄리아, 42 바이트-25 = 17

print("@"^42((r=readline())>""?int(r):2))

STDIN에서을 사용하여 줄을 읽습니다 readline(). 비어 있으면 (즉, 입력이 제공되지 않은 경우) n 은 정수로 변환 된 입력으로 정의됩니다. 그렇지 않으면 , n은 2. 우리는 다음 42 개 인쇄입니다 n은 @ STDOUT에들.


5

펄, 18-25 = -7

print$=x(<>*9||18)

특수 변수 $=aka $FORMAT_LINES_PER_PAGE는 수명을로 시작 60하므로 바이트 출력의 절반만큼만 복제하면됩니다.


1
나는 매우 비슷한 대답을했다 : print$=x9x(pop||2)nice!
— Dom Hastings
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.