대각선 알파벳


66

입력이 없으면 다음을 생성해야합니다.

a
 b
  c
   d
    e
     f
      g
       h
        i
         j
          k
           l
            m
             n
              o
               p
                q
                 r
                  s
                   t
                    u
                     v
                      w
                       x
                        y
                         z

비 시각적으로, 당신의 임무는 알파벳에서 각 문자를 생성하는 것입니다.

이것을 인쇄하면 위와 같이 나타나야합니다. 후행 줄 바꿈뿐만 아니라 모양에 영향을 미치지 않는 불필요한 공백이 허용됩니다. 모두 소문자 또는 모두 대문자를 사용할 수 있습니다.

줄 바꿈이 포함 된 문자열 또는 문자열 목록으로 일반적인 규칙에 따라 함수에서이를 반환 할 수도 있습니다.

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


공백은 실제 ASCII 공백이어야 a<VERTICAL-TAB>b<VERTICAL-TAB>c...합니까 , 아니면 다음과 같이 출력을 줄 수 있습니까? 백 스페이스 문자도 있으면 어떻습니까? 시각적 결과가 동일한 한?
디지털 외상

@DigitalTrauma가 동일하게 표시되는 한 어떤 종류의 공백을 사용하든 상관 없습니다.
Stephen

공백 대신 탭을 사용할 수 있습니까?

아마 @ yamboy1 흠. 대부분의 탭은 많은 수의 공백으로 설정되어 있습니다. 대각선이 4앞에 공백 이있는 것처럼 보이는 경우에는 대각선으로 보이지 b않습니다. 경사가 ~ 인 것처럼 보이면 -1괜찮습니다.
Stephen

외관에 영향을 미치지 않는 것은 여분의 선행 공간 또는 2를 포함합니까?
MildlyMilquetoast

답변:


87

, 2 바이트

↘β

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

어떻게?

 β - the lowercase alphabet
↘  - direction

숯이 원래 설계된 도전의 종류.


4
올바른 언어 :)
Stephen

2
아마 크레이 온에서 좀 더 일해야한다고 ↘"abc ... xyz"q생각합니다. 가장 짧은 프로그램 일 것입니다. ( 온라인으로 시도하십시오! ) ↘``26O;)q가 작동해야합니다 (백틱으로 시작하십시오. .
ETHproductions

2
2 바이트?! SOUTH EAST ARROW는 어떤 인코딩 에서 단일 바이트입니까?
Wyck

6
@Wyck Charcoal (참고 : 추측)은 1 바이트 명령어로 압축 할 수있는 사용자 지정 코드 페이지를 사용합니다. 그것은 코드 골프에 합법적입니다. codegolf.meta.stackexchange.com/questions/9428/…
Draco18s

14
@StephenS, 나는 당신이 오른쪽 아래 언어를 의미한다고 생각합니다 :)
Wossname

18

C, 45 바이트

f(i){for(i=0;++i<27;)printf("%*c\n",i,i+96);}

5 바이트를 절약 한 @Dennis 에게 감사드립니다 !


9
내 컴퓨터에서 작동
Destructible Lemon

i어느 시점에서 초기화하거나 재설정해야한다고 생각합니다 . 적어도 TIO에서는 f()한 번만 작동합니다 .
Dennis

@ 데니스 아, 맞아. 고쳤다.
Doorknob

f(i){for(i=0;++i<27;printf("%*c\n",i,i+96));}몇 바이트를 절약합니다.
Dennis

3
f(i){for(i=96;i<122;)printf("%c\v",++i);}41 바이트-실제 터미널에서 이것을 실행하십시오 (예, 허용됩니다 )
NieDzejkob

13

05AB1E , 14 8 6 바이트

@Emigna 덕분에 -2 바이트

AvyNú»

작동 원리

A      # lowercase alphabet
 v     # for letter in alphabet
  y    # push letter
   N   # push index of letter
    ú  # Pad letter with index of letter spaces
     » # Join with stack on newline.

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

원본 버전, 14 바이트

26FNð×N65+ç«}»

을 사용하여 다른 2 바이트를 저장할 수 있습니다 AvyNú».
Emigna

@Emigna : 감사합니다! 그것을 편집 할 것입니다.
Neil A.

ƶ너무 완벽 해 보이지만 :(.
Magic Octopus Urn

Λ아마도 당시에는 사용할 수 없었지만 26A3Λ바이트를 절약합니다.
Kevin Cruijssen

1
@MagicOctopusUrn ₂A3Λ은 더 짧았을 것입니다.
Kevin Cruijssen

12

자바 스크립트 (ES6), 60 59 바이트

f=(n=10)=>n-36?" ".repeat(n-10)+n.toString(++n)+`
`+f(n):""

후행 줄 바꿈으로 문자열을 반환하는 재귀 함수입니다.


1
우와, 정말 몰래 요 10에서 36 사이의 숫자를 기수의 숫자로 변환합니다. 베이스가 왜 증가해야하는지 아직 이해하지 마십시오.
Steve Bennett

2
@SteveBennett 맞지만 n.toString(++n)+f(n)보다 짧은 바이트 n.toString(36)+f(n+1)입니다.
ETHproductions

1
당신은 f=(n=10,s='')=>n-36?s+n.toString(++n)+'\n'+f(n,s+' '):""55를 위해 할 수 있습니다.
Arnauld

1
ES8과 함께 바이트를 저장하십시오 "".padEnd(n-10)+n.toString(++n).
얽히고 설킨

1
@Arnauld, f=(n=10,s='')=>n-36?s+n.toString(++n)+'\n'+f(n,s+' '):s허용되는 것 같습니다.
얽히고 설킨

12

루비 , 28 바이트

26.times{|a|puts" "*a<<97+a}

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

설명:

문서에 설명 된대로 Ruby에서 문자열의 << 연산자는 트릭을 수행합니다 .

  • str << 정수 → str

  • str << obj → str

Append— 주어진 객체를 str에 연결합니다. 객체가 정수인 경우 코드 포인트로 간주되며 연결하기 전에 문자로 변환됩니다.


12

R, 38 37 36 바이트

write(intToUtf8(diag(65:90),T),1,26)

(의 사용은 @Giuseppe의 답변에서write 영감을 얻었습니다 .)


3
맹세하지만 나는 그것을 시도했지만 작동하지 못했습니다! 잘 했어. 대문자가 허용되므로 65:90을 사용하여 1 바이트를 저장할 수 있습니다.
user2390246

@ user2390246 지적 해 주셔서 감사합니다!
Sven Hohenstein

다른 바이트를 면도 하는 1대신 사용할 수 있습니다 "".
주세페

@Giuseppe 지적 해 주셔서 감사합니다!
스벤 호헨 슈타인

11

Vim, 29 바이트

:h<_↵↵↵y$ZZ25o <Esc>{qqpblD+q25@q

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

↵는 리턴 키를 누르는 것을 의미합니다

<Esc>는 이스케이프 키를 누르는 것을 의미합니다

어떻게 작동합니까?

:h<_↵↵↵                             Open the help and navigate to the alphabet
       y$ZZ                         Copy the alphabet and close the help
           25o <Esc>                Abuse auto-indent and create a whitespace diagonal
                    gg              Go to the beginning of the file
                      qq            Record a macro
                        pb          Paste the alphabet and go to the first letter
                          lD        Go to the second letter and cut the rest of the alphabet
                            +       Go to the first non-blank character in the next line
                             q      Stop recording the macro
                              25@q  Run the macro for the remaining letters

온라인으로 사용해보십시오! 이를 사용하여이를 증명할 수 있습니다 (V는 Vim을 기반으로하며 자동 들여 쓰기 기본값은 off로 설정되는 경우를 제외하고 대부분 이전 버전과 호환됩니다). 또한 덜 중요하게도, 당신 +은 당신의 설명에서 나를 던졌습니다.
nmjcman101

@ nmjcman101 감사합니다! 온라인으로 vim을 시도하는 방법을 찾으려고
했는데

대신 사용할 수 있습니다 <Esc>. 내 의견으로는 조금 나아 보인다.
밀 마법사

{대신에 1 바이트를 절약 할 수 있습니다.gg
DJMcMayhem

$ 대신 2↵를 사용하고 y $ 대신 Y를 사용
GB

11

파이썬 2 , 36 바이트

n=65;exec"print'%*c'%(n,n);n+=1;"*26

이것은 모양 규칙에 영향을 미치지 않는 불필요한 공백을 이용합니다 .

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

대체 버전, 38 바이트

n=1;exec"print'%*c'%(n,n+96);n+=1;"*26

이는 챌린지 사양에서 정확한 결과를 생성합니다.

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


어떻게 %*c작동합니까?
Leaky Nun

%*<identifier>두 가지 인수를 취합니다. 패딩하는 길이와 대체 할 실제 항목입니다. 일부 printf구현에는 여기에서%1$<identifier> 사용한 것과 같이 더 모호한 기능이 있습니다 .
Dennis


8

퓨어 배쉬, 13

echo {a..z}^K^H

다음 ^K^H문자 수직 탭과 백 스페이스 ASCII 제어 문자입니다. xxd이 스크립트 의 덤프는 다음과 같습니다 xxd -r. 실제 스크립트를 재생성하는 데 사용 하십시오.

00000000: 6563 686f 207b 612e 2e7a 7d0b 08         echo {a..z}..
  • {a..z}생성하는 표준 배쉬 괄호 확장입니다 a b c ... z(공백으로 구분).
  • ^K수직 탭은 같은 위치에 한 줄 커서를 아래로 떨어
  • ^H백 스페이스 세퍼레이터 공간을 지우고 다시 한 커서 이동

온라인으로 사용해보십시오 . col그리고 tac이 브라우저 창에서 제대로 렌더링하기 위해 얻을 수있는 바닥 글에 사용하지만, 이것은 일반 단말기에 필요가있다.


출력의 위의 정통 제어 문자가 너무 늘어 나면 다음과 같이 할 수 있습니다.

배쉬 + 공통 유틸리티, 24

echo {a..z}^K^H|col -x|tac

다음 ^K^H문자 수직 탭과 백 스페이스 ASCII 제어 문자입니다. xxd이 스크립트 의 덤프는 다음과 같습니다 xxd -r. 실제 스크립트를 재생성하는 데 사용 하십시오.

00000000: 6563 686f 207b 612e 2e7a 7d0b 087c 636f  echo {a..z}..|co
00000010: 6c20 2d78 7c74 6163                      l -x|tac

온라인으로 사용해보십시오 . 세로 탭과 백 스페이스는 브라우저에서 보이지 않게 표시 될 수 있지만 크롬에는 표시되지 않으며 Firefox에는 표시됩니다.

  • col -x 재미있는 제어 문자가 공백과 개행 문자로 대체되어 동일한 시각적 결과를 얻을 수 있도록 입력을 다시 렌더링합니다.
  • 어떤 이유로 col라인을 역순으로 출력합니다. tac그것을 수정합니다.

(매우 지루한) codegolf 언어 대신 내장되어있는 codegolf에 대한 답변을 제안하는 meta 및 @Dennis 덕분에 매우 멋집니다 : codegolf.meta.stackexchange. com / questions / 10127 /… )
Olivier Dulac

많은 터미널 ^K이 커서로 렌더링 되며 col여기에서 에뮬레이트해야하는 동작입니다 .
Neil

@Neil 예, 말이됩니다. col맨 페이지는 VT를 "역행 피드"라고합니다. xterm 등, 그놈 터미널 및 OSX 터미널은 모든 ... 비록 라인을 드롭 다운
디지털 외상에게

8

Brain-Flak , 124, 116 , 106 바이트

((((()))))(((([][]){}){})[[]()]<>){(({})<(({})<({}<>({})({})<>)>)
{({}<(<>({})<>)>[()])}{}(<>[][]<>)>[()])}

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

설명:

이 답변 은 Stack Height Nilad을 남용 하지만 이전에 사용하지 않은 새로운 방식으로 자랑스럽게 생각합니다. 그 외에는 대답이 너무 영리하지 않습니다.

따라서이 ASCII 기술에 사용 된 문자를 분석 할 때 자주 사용되는 세 가지 값이 있습니다.

  • 32 (공백),

  • 64 (알파벳의 N 번째 문자를 얻으려면 64를 N에 더함)

  • 10 (줄 바꿈)

뿐만 아니라 26. (루프 수) 그리고이 숫자들은 다른 위치에서 밀려나므로, 큰 숫자를 더 작게 만들기 위해 중간 값을 재사용 할 수는 없습니다. 그리고이 숫자들을 모두 밀어 붙이는 것은 무려 86 바이트입니다.

10:
((()()()()()){})

26:
((((()()()){}){}()){})

32:
((((()()()()){}){}){})

64:
(((((()()()()){}){}){}){})

이것은 끔찍하다. 보다 편리하게 만드는 방법은 다음과 같습니다. 확실한 방법은 밀어하는 것입니다 32우리하게 대체 스택에 32될 조각을 : (<>({})<>)우리의 64조각이된다 (<>({})({})<>). 초기 푸시 32 와 초기 푸시 26 을 결합하면 대략 8 바이트를 절약 할 수 있습니다. (내 첫 골프).

그러나 여기에 제가 정말로 자랑스럽게 여기는 트릭이 들어옵니다. 대체 스택을 다른 용도로 사용하지 않기 때문에 10을 넘어서 골프를 치기도합니다. 이를 위해 프로그램 시작시 스택에 임의의 숫자 4 개를 밀어 넣습니다. 32를 푸시하기 때문에, 이것은 []nilad 의 값 을 5로 증가시켜 10스 니펫을 훨씬 더 편리하게 만듭니다. 그리고 운이 좋으면, 실제로 푸시 32와 26 스 니펫을 골프화 할 수 있습니다!

#Push 32, 26
(((((()()()()){}){}){})<>[(()()()){}])

#Push 10
((()()()()()){})

된다

#Push 32, 26 (-2 bytes)
(((((())))))((([][][]){}()())[[]]<>)

#Push 10 (-6 bytes)
(<>[][]<>)

자세한 설명은 다음과 같습니다.

# Push 1 four times
((((()))))

# Push 32 to main stack (to reuse later)...
((([][][]){}()())

# And then 26 to the alternate stack
[[]()]<>)

#While true
{

    # Keep track of the current TOS
    (({})<

        # Push [TOS, TOS + 64] (To get uppercase characters)
        (({})<({}<>({})({})<>)>)

        # TOS times...
        {
            # Decrement the loop counter, while pushing a space underneath it
            ({}<(<>({})<>)>[()])

        # Endwhile, pop zeroed counter
        }{}

        # Push 10 (newline)
        (<>[][]<>)

    # Push TOS - 1 back one
    >[()])

# Endwhile
}

7

V , 15 13 11 바이트

¬azòÙr klDj

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

설명

¬az         ' Insert a-z
   ò        ' Recursively
    Ù       ' Duplicate current line down
     r      ' Replace the first character with a ' '
       kl   ' Move up a line and right
         D  ' Delete from here to the end
          j ' Move back down

7

Google 스프레드 시트, 67 65 바이트

=ArrayFormula(IF(ROW(A1:Z)=COLUMN(A1:Z26),CHAR(96+ROW(A1:Z26)),))

= 배열 공식 (IF (ROW (A1 : Z) = COLUMN (A1 : Z26), CHAR (96 + ROW (A1 : Z26)), ""))

모든 공백이 할 것이라는 설명을 없애고 눈에 띄게 빈 셀을 사용했습니다.

산출

바이트 수를 잘못 이해했거나 이것이 첫 번째 게시물이므로 에티켓을 망친 경우 알려주세요.

편집 : Google 시트는 빈 if 값을 허용하므로 ""를 생략하면 2 바이트를 절약 할 수 있습니다.


1
PPCG에 오신 것을 환영합니다 :) 좋아 보인다! 다른 Google 스프레드 시트 답변을 때리는 것이 좋습니다.
Stephen

7

APL (Dyalog) , 9 7 바이트 SBCS

ngn의 힌트 덕분에 -2 바이트

↑⍨∘-⌸⎕A

[온라인으로 사용해보십시오!] [TIO-j3o0ipjy]

⎕A 대문자 A lphabet

 각 (요소, 인덱스 목록) 쌍 사이에 다음 암묵적 함수를 삽입하십시오.

↑⍨ 요소 (문자)에서 ...

 그만큼…

- 음수 색인 된 문자 수, 즉 뒤에서 많은 문자가 공백으로 앞에 채워집니다.

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


좋은. 내 J 시도는 좀 더 장황했다. 이 동사를 J로 번역 했습니까?
Jonah

@Jonah 동사 : is {.and is i.Adverbs : ¨is "0and is ~입니다.
Adám

감사. J 번역이 간결함을 잃어버린 것 같습니다 :(a.{~97+i.26){."0~-1+i.26
Jonah

@ Adám 출력이 필요에 따라 보이지 않습니다. 힌트 : 적절한 행렬을 출력하고 2 바이트를 절약하는 데 사용
ngn

@ngn 문자열 목록을 반환 할 수도 있습니다 (…). 하지만 조사하겠습니다. 편집 : 물론 그렇습니다!
Adám

6

옥타브, 25 19 또는 12? 바이트

[diag(65:90)+32 '']

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

@LuisMendo (12 바이트)가 제안한 다른 솔루션은 Windows 버전의 Octave에서 테스트했습니다.

diag('a':'z')

설명:

의 대각 행렬을 생성합니다 a:z.


@LuisMendo tio에서 동일한 결과를 생성 할 수 없습니다. 그것은 원하는 결과를 산출하는 평가 가능한 표현이다 :)
rahnema1

Luis가 제안한 솔루션은 이제 TIO에서 작동하는 것 같습니다 ... Octave의 새 버전일까요?
Stewie Griffin

아니면 새로운 버전의 티오!?
rahnema1 2018 년

6

자바 8, 72 71 70 61 바이트

o->{for(int a=0;a++<26;)System.out.printf("%"+a+"c%n",a+96);}

소문자 대신 대문자 알파벳을 출력하여 -1 바이트.
여러 줄 문자열을 반환하는 대신 직접 인쇄하여 -1 바이트
-8 바이트 감사 @ OliverGrégoire 사용하여 printf없애 직접 String s="";. 또한로 변경 ()->하여 -1 바이트 o->.

여기에서 시도하십시오.


순진한 구현은 생각했던 것보다 짧습니다. 바이트를 저장하여 c=65(또는 64실제로) 3 자리 숫자가 필요하지 않습니다. 문자열 대신 배열을 반환하면 +"\n"?를 제거 할 수 있으므로 바이트를 절약 할 수 있습니다 .
TheLethalCoder

@TheLethalCoder 아, 대문자 알파벳을 출력 할 수 있다는 것을 몰랐습니다. 그것을 넘어 서기. 감사. 그리고 배열을 출력한다는 것은 무엇을 의미합니까? 배열의 배열처럼?
Kevin Cruijssen

1
@TheLethalCoder 모든 팁을 환영합니다. 감사합니다. 그러나이 경우에는 더 짧지 않습니다. :)
Kevin Cruijssen

1
@Winter 첫 번째 제안에 대해서는 여전히이 메타 포스트 에서 논의되고 있지만 투표로 판단하면 지금부터 허용되는 것 같습니다. 두 번째에 관해서는 확실하지 않습니다. 그것은 특히이 메타 게시물과 답변에 대한이 격렬한 토론 후에 규칙을 부정 행위 / 구부리는 느낌 이납니다 .
Kevin Cruijssen 2016 년

1
62 바이트 : 다른 도전과 같은 아이디어를()->{for(int a=0;a++<26;)System.out.printf("%"+a+"c%n",a+96);} 사용합니다 .
Olivier Grégoire

5

젤리 ,  10  9 바이트

데니스 바이트 -1을 감사 (감분 방지 J하강 범위를 이용하여, 26Ḷ직접)

26Ḷ⁶ẋżØaY

결과를 인쇄하는 전체 프로그램.

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

( ØaJ’⁶ẋż7의 경우 문자 목록의 목록을 리턴하는 모나드 링크이지만 [["a"],[" ","b"],[" ","c"],...]허용되지 않을 수 있습니다.)

그러나 내가 생각하지 않은 짧은 방법이 있다면 놀라지 않을 것입니다!

어떻게?

26Ḷ⁶ẋżØaY - Main link: no arguments
26        - literal 26
  Ḷ       - lowered range = [0,1,2,...,26]
   ⁶      - literal space character
    ẋ     - repeat          [ [],      [' '],      [' ',' '],    ...,  [' ',' ',...,' ']]
      Øa  - yield lowercase alphabet
     ż    - zip             [[[],'a'],[[' '],'b'],[[' ',' '],'c'],...,[[' ',' ',...,' '],'z']]
        Y - join with newlines  [[],'a','\n',[' '],'b',\n',[' ',' '],'c','\n',...,'\n',[' ',' ',...,' '],'z']
          - implicit print (smashes the above together, printing the desired output)

[["a"],[" ","b"],[" "," ","c"],...]문자 목록이 문자열에 대한 대체 정의이므로 허용 할 수도 있지만 튜플은 적합하지 않은 것 같습니다 :)
Stephen

그래, 내 생각이야
Jonathan Allan

1
... 위의 각 "..."문자 목록은 문자 목록 [[['a']],[[[' '],['b']],[[' ',' '],['c']],...]이므로 젤리에는 문자열이 없으므로 목록 만 있습니다.
Jonathan Allan

26Ḷ⁶ẋżØaY바이트를 저장합니다.
Dennis

ØaJ’⁶ẋż에 대한 7대체 버전입니다.
Leaky Nun

5

PowerShell, 29 바이트

0..25|%{' '*$_+[char]($_+97)}

나는 $_당신이 갈 때 97을 더하는 방법을 좋아합니다 .
root

5

Alice , 22 20 바이트

52E&waq'a+q&' d&o]k@

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

출력이 문자열이지만 서수 모드는이 도전에 대한 길이 아닙니다.

설명

52E&w             k@     do 26 times
     a                   push 10 (LF)
      q                  push current tape position (initially zero)
       'a+               add the ASCII code for "a"
          q&'            push 32 (space) a number of times equal to tape position
              d&o        output entire stack
                 ]       move tape position one space to the right

이전 솔루션

["za/?rO&
' !]\"ohkw@/

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

이것을 찾기 전에 약 10 개의 23 바이트 솔루션을 살펴 보았습니다.

설명

이 프로그램은 테이프를 사용하여 출력 할 공간 수를 추적합니다. 카디널 및 서수 모드는 동일한 테이프를 사용하지만 별도의 테이프 헤드가 있습니다. 두 모드는 테이프에서 보는 것과 다른 해석을하며 프로그램은 그 차이를 완전히 활용합니다.

명령은 다음 순서로 실행됩니다.

[                   move cardinal tape position left
 "za"               push this string (as a string, since the final " is in ordinal mode)
     r              interpolate to entire range (i.e., the lowercase alphabet backward)
      h             split first character from string
       &            for each character in string: push that character and...
        w                                         push current address onto return address stack
         ' !        (cardinal mode) place 32 (space) at current cardinal tape position
            ]       (cardinal mode) move cardinal tape position right
             ?      (back to ordinal mode) read string from tape starting at ordinal tape position
                    this string will consist of n-1 spaces.
              o     output string of spaces
               O    output top of stack (current letter) followed by newline
                k   return to pushed return address. 
                    after 26 times through this loop, the return address stack will be empty and this is a no-op.
                 @  terminate

5

Brainfuck, 103 바이트

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

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

변수의 위치는 어떻게 든 개선 할 수 없습니다.

설명

>-<-----[[<+>->>+++>-<<<]>++]   Initializes the tape.
<<<<<<<<<[-]>[-]>>-             Resets variables that
                                need to be at 0.
[                               For loop (25 to 0).
 <[-]<<[>+>+<<-]>>[<<+>>-]      Copy the spaces count in
                                order to use it in a loop.
 <[>>>>.<<<<-]                  Prints the spaces.
                                Prints the character followed
 <+>>>>.+>>.<<<-                by a new line. Also decrements
                                the main loop counter.
]

5

Google 스프레드 시트, 69 바이트

=ArrayFormula(JOIN("
",REPT(" ",ROW(A1:A26)-1)&CHAR(96+ROW(A1:A26))))

여기서 복잡한 것은 없습니다. 유일한 트릭은 함수에 대해 26 개의 다른 값을 사용 ArrayFormula하고 ROW(A1:A26)반환하는 JOIN것입니다. 출력은 다음과 같습니다.

산출


Excel 2016에서 동일한 작업을 수행 할 수 있다고 생각 TEXTJOIN하지만 온라인 버전에서는 배열 수식을 입력 할 수 없으며 2013 만 있습니다. 공식 다음과 같습니다.

=TEXTJOIN("
",FALSE,REPT(" ",ROW(A1:A26)-1)&CHAR(96+ROW(A1:A26)))

배열 수식 ( Ctrl+ Shift+ Enter) 으로 입력하면 { }양쪽에 중괄호가 추가 되어 67 바이트가됩니다. 작동하는지 확인할 수있는 사람은 누구나 자신의 답변으로 사용할 수 있습니다.


5

시드 , 6014 바이트

나는 이것이 어떤 상을 수상 할 것이라고 생각하지 않지만 재미를 위해 Seed의 해결책이 있습니다.

86 11103250503694729158762257823050815521568836599011209889044745493166180250197633623839266491438081837290079379263402288506775397211362446108152606095635373134468715450376738199004596861532212810083090232034321755895588102701453625219810339758989366211308223221344886043229936009486687653111291562495367476364760255760906228050130847228170228716790260998430434027546345063918859356161024202180254514539438087787769611000320430464740566450402368450792375043801526494811596087812709169139468697779440918934518195843690439213251884693846598754642076364755341359062651237754916053099089619667382845958005035392458577634784453744876558142057256976895330859887974064083588368087014591508237946214519271550243549214199679364098489146944338807874570414584343165070707969101892779772740177526390597395955859236589308394889243501541206981604661264930842784772121710695027991351718061777696274815931123342985242351444203296855501870888626347939456384376808446806093364176576945969539054970975848477876079897476093353730443488664472826635815956526890935049081522728044807877072639829234224838977148057506785320443165975265560224605597481381188291535996775480326796788286452216432605854564432262547835415260058472165825285438444435690700488258778785613363062417500848996527077259315494936037544655054620369560227407957368700650031346856230643646273909094915618471799926504192999361174763592054723307855670381682927214117502862645460031555724588536036895597768493827964819026940533784490457441244859937078155137620826821294513857153097135094397278852300032685608169642137925241118197368192392427097109982751185030229544527638686131131545529690698706313745703838144933923021851042677941879847025167921010148923860660695145106913052517930707522151230705792709484338746351589089180137363986003757314611932324492978098101655359729841878862276799317010824753645947659706175083519817734448003718088115457982394423932136760435046136644679525408371158980833993157988971884061469882136904103033944270884697456159261033500286722891139158500027351042265757431184139617566089023339480051231776345929815102059539844917563709940188668873305602146506284075271989710388430531233185164106985265575418252638186398535149202928422854319253947591044830747981534342833040219194969504971457701296402664807369043224201667623773161453335066484102800249947322601702575025462427139266561015140950621152993027466758026351218924607290766894274223554418125824416921899080393405328694235821466034161071834073874727856768719898425047229002772806527172294625623026601313091815217479540688812203850300478145319935479599086534606210099372526810614742385909275512758349679098012967475393301857434507012875239092688018536028125644341148882858752275129016876257290205949225918496182271679312996010157634568807332616541938310641844258434083838017690572891417189135014450484203635258935943095637185443145042430274553211816422809756194554145177421779800554334935224073734034988935790096239926730047370699006392111034056662661567902477446646680125183082979598538506383502737734442490068661537425714549752783861222862366340979663873475326752237893690641570287341027097775099918958849864419430754493042534812120486345363285167685811903366691676146427476942948696624274431993989133835880516551024369474029197791751838810883302415448112237526350703063618171739262753474029252659418383385834751808940073804107171146665382663467460066719556797639176747423279761528061219482681051780434845070421974558638870988408449698678976622755518024906714421419806347234183574860655249471877105716127767795785164699804819127058322715857697491583787449703283625085118896433923054087238479453964363805045497229148813441732912067120594705269402106426011497763749556561398150139686331615167139081591537739333533146667211063179804707883556569241294269430626179579760506971066676011512530066694518309930078451295032445835025178124213221937594928472509588116557231122849491576207720183829735710200290762251904109318007206980645946249679357907549498615310165588678201768095297568708803842208357473777731751349499510116345704811971207818719582793964185192140178454948686109674659005978400204479072321714207828018696339659886683414074211823497880135255138161141724546221354224299071581607979907417508104234534779573666933024250229754952685174194168516481670999039048675109878524061868078078216337487277443941946961426121900907734301692962783139932352047932263834773963592317279425421954035566305805348109175553209815893678595198155962166838761859540063188209014774346841267440789072833797121217961797443744676162541668802226500817146368372390178287945076657776275930590173768326046610094573983886099504933977126798348879838826160714899283593774855907724617352862079916515034033299006419237012240730789008999523238851913897908225482003661109026061857228300111070725651744312468140016983078297938157227595743419983763920290850801438187869169473456288283458163865462359588316419331445070232596307970490434468929587726795603069137946085898481642595124580643542063564880389350236902538522311931690905858973696558714577085714396738993556273941292496636824719451697631982422926675238248502170501569627556395875619564600587531422890212003952929325067813498958390095519100963598626450443103780781917045489137526377521695121594716424797216910752252094749957224424042047863869830458287114846161217532552045343745235776511344577755412402833175338541217548987687334493461236111032661075185714361252784989689657180878190058132112701323898697673356854132286586129946906160482715702618768869398700713988301485421822519104930442450343377920756456344715552821899659777521739288202633751258303637433110490141551780764889912485271829265224821750882760152112536985349681370761157202793523201156381835717321637420939424473215237574260806475544972321933149796156065126465186203580256364372579422208318560608817806013462242728082475787319168695978160861791054731154820533251279706873332364894538291172324730671914083193733203570060223897442373172904974570329139578763294810924815364789498523721281918680145538278976651264

다음과 같은 Befunge 프로그램으로 변환됩니다.

vaa{       @>
v#      g02<v
>30g20g`   |
10g-:!v!: < >#<
v,:g02_40g,1- ^
>1+20p$91+, v


4

추가 ++ , 1069 바이트

+97
&
-87
&
+22
&
+66
&
-88
&
+22
&
&
+67
&
-89
&
+22
&
&
&
+68
&
-90
&
+22
&
&
&
&
+69
&
-91
&
+22
&
&
&
&
&
+70
&
-92
&
+22
&
&
&
&
&
&
+71
&
-93
&
+22
&
&
&
&
&
&
&
+72
&
-94
&
+22
&
&
&
&
&
&
&
&
+73
&
-95
&
+22
&
&
&
&
&
&
&
&
&
+74
&
-96
&
+22
&
&
&
&
&
&
&
&
&
&
+75
&
-97
&
+22
&
&
&
&
&
&
&
&
&
&
&
+76
&
-98
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
+77
&
-99
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
+78
&
-100
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+79
&
-101
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+80
&
-102
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+81
&
-103
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+82
&
-104
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+83
&
-105
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+84
&
-106
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+85
&
-107
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+86
&
-108
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+87
&
-109
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+88
&
-110
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+89
&
-111
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+90
&
P

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

네. 하드 코딩되어 있습니다. 더 좋은 방법이 있다고 확신합니다. 찾고 싶다면 Add ++이 메모리로 작업하기가 어려우 므로이 방법이 가장 효과적입니다.


4

R , 59 49 47 바이트

djhurio 덕분에 -10 바이트

Sven Hohenstein 덕분에 -2 바이트

write("diag<-"(matrix("",26,26),letters),"",26)

stdout으로 인쇄합니다. 사용자가 발송 함

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


당신은 대체 할 수 26^2676바이트를 저장합니다.
Doorknob

2
m=matrix("",26,26);diag(m)=letters;write(m,'',26)(49 bytes)
djhurio

같은 양의 바이트에 대해cat(m,fill=27)
JAD

1
@djhurio "동일한 바이트 수"
JAD

1
@Giuseppe이 명령은와 "diag<-"(x, y)유사합니다 diag(x) <- y. 값이 변수에 지정되지 않고 리턴됩니다.
Sven Hohenstein

4

> <> , 46 44 42 바이트

"A"0::?!v" "o1-40.
*(?!;30.>~$:oao1+$1+:d2

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

설명

Line 1:
"a"0::?!v" "o1-40.
"a"0                       :Initialize the stack items (print char and space count)
    ::?!v                  :Duplicate the space count, check if 0, go down if 0
         " "o1-            :Print a space then take 1 from the space count
               40.         :Jump to codepoint row 0 col 4 (this restarts the loop)
Line 2:
*(?!;30.>~$:oao1+$1+:d2
        >~                 :Remove the zeroed space counter off the stack
          $:oao1+          :Place our print char on the top of the stack, duplicate and print it, print a new line, increase it by 1; a->b->c etc
                 $1+       :Place our space count on the top of the stack and increase it by 1
*                   :d2    :Duplicate the space counter, add 26 to the stack
 (?!;                      :Add 0 to the stack, less than compare 0, if the counter is above 0 it terminates
     30.                   :Jump to the first line, (back to printing spaces)

이것은 이전 46 바이트와 완전히 다른 테이크이므로 TIO도 포함했습니다. 46 바이트 온라인으로 사용해보십시오!

아래는 Emigna의 제출물에 대한 링크입니다. 첫 번째> <> 답변 이었지만 두 번째 것을 보증하기에 충분할만큼 (그리고 몇 바이트를 절약 할 수 있습니다) 믿습니다.

에미 냐의 대답


그리고 지금 우리는 묶여 있습니다. 만약 당신이 확실하게하기 위해 1 ~ 2 바이트 골프를한다면 가장 좋습니다.)
Emigna

@Emigna, 나는 3 저장된 바이트는 충분히 될 것이라고 생각 : 오 내가 좀 더 많은 작업 :이 추측
펠리칸 청록

4

하스켈 , 66 65 58 57 45 43 바이트

12 14 바이트 를 절약 해 준 @nimi@maple_shaft 에게 감사드립니다 .

unlines[(' '<$['b'..n])++[n]|n<-['a'..'z']]

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


1
당신은 같은 점수를 얻을 수 있지만 때로는 <$복제 대신 사용할 수 있습니다 :(' '<$[1..(fromEnum n-97)])
maple_shaft

2
@maple_shaft의 제안을로 변경할 수 있습니다 (' '<$['b'..n]).
nimi

명명되지 않은 함수가 허용되므로을 (를) 필요로하지 않습니다 f=.
nimi

2
Btw, 동일한 바이트 수 : ['a'..'z']>>= \n->(' '<$['b'..n])++[n,'\n'].
nimi

4

PHP, 23 바이트

참고 : IBM-850 인코딩을 사용합니다.

<?=join(~¶,range(a,z));

다음과 같이 실행하십시오.

echo '<?=join(~¶,range(a,z));' | php -n;echo
# With default (utf8) terminal:
echo '<?=join("\v",range(a,z));' | php -n;echo

설명

알파벳의 모든 문자 배열을 만들고 세로 탭을 접착제로 결합하십시오.


4

brainfuck , 80 바이트

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

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

형식화 :

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

메모리에 어떤 상수를 넣어 간단한 곱셈 생성 함수를 사용하고 다음 인쇄 N 스페이스의 과정을 반복 'A' + N대한 N = 0..25.

주석 달기 :

INITIALIZE TAPE: 10 32 65 >26< 0 0
C_NEWLINE: 10
C_SPACE: 32
V_ALPHA: 65
V_COUNTER: 26
V_PREFIX: 0
V_PREFIX_TEMP: 0
++++++++[>+>++++>++++++++>+++<<<<-]>++>>+>++

WHILE V_COUNTER != 0  [-
   "PRINT C_SPACE REPEATED V_PREFIX TIMES"
   "V_PREFIX_TEMP = V_PREFIX"
     V_PREFIX TIMES  >[-
       PRINT C_SPACE <<<.>>>
       INCREMENT V_PREFIX_TEMP >+<
     ]
   "V_PREFIX = V_PREFIX_TEMP PLUS 1"
     V_PREFIX_TEMP PLUS 1 TIMES  >+[-
       INCREMENT V_PREFIX <+>
     ]
   PRINT C_ALPHA <<<.
   INCREMENT C_ALPHA +
   PRINT C_NEWLINE <<.
>>>]

4

RProgN 2 , 5 바이트

aS`\x0B.

\ x0B는 세로 탭 리터럴입니다.

이것은 단지 소문자 알파벳을 취해서 나누고 수직 탭과 결합시킵니다. 이것은 특정 Bash 터미널에 의도 된 효과를 생성합니다.

스크립트 실행

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