라인의 번호를 부여하는 함수를 작성 n
하는합니다 bigA
.
- 가로 막대
bigA
는 가운데 줄에 있어야하며,n
짝 수면 - 출력용 모노 스페이스 글꼴을 가정
출력은 줄 바꿈을 위해 명확한 줄 바꿈이 있고 왼쪽 패딩에 올바른 공백이있는 문자열 (또는 유사한 문자 배열)이어야합니다 (\ t는 4 공백으로 가정 할 수 있음). 오른쪽에 공백이있을 수 있습니다.
예
n = 1
A
n = 2
A
AAA
n = 3
A
AAA
A A
n = 4
A
A A
AAAAA
A A
n = 5
A
A A
AAAAA
A A
A A
이것은 더 작은 “H”에서 “H”를 생성함으로써 영감을 얻었습니다.
답변
05AB1E , 13 바이트
암호:
Ð;î¹)'A1376SΛ
05AB1E 인코딩을 사용합니다 . 온라인으로 사용해보십시오!
설명:
Ð # Triplicate the input.
;î # Compute ceiling(n / 2).
¹ # Push the first input again.
) # Wrap into an array. For input 7, this would result in:
[7, 7, 4, 7].
'A # Push the character 'A'
1376S # Push the array [1, 3, 7, 6]. These are the directions of the canvas.
This essentially translates to [↗, ↘, ↖, ←].
Λ # Write to canvas using the previous three parameters.
캔버스
아마도 캔버스를 조금 더 (그리고 다른 많은 기능들) 문서화해야하지만, 기본적으로 요약합니다. 캔버스는 주어진 매개 변수 유형에 따라 다른 ‘모드’를 갖습니다. 캔버스 명령에는 <length> <string> <direction>의 세 가지 매개 변수가 있습니다.
길이 및 방향 매개 변수는리스트이므로, 이들리스트를 압축하여 실행할 명령 세트를 작성합니다. 문자열 매개 변수는 문자 A 이므로 모든 명령에서 사용되는 채우기 문자입니다. 캔버스는 이것을 다음 명령어 세트 (입력 7)로 해석합니다.
- 문자열 A 를 ↗ 방향으로 길이 7 의 선을 그 립니다.
- 줄 A 를 direction 방향으로 길이 7 의 선을 그 립니다.
- 줄 A 를 direction 방향으로 길이 4 의 선을 그 립니다.
- 문자열 A 를 ← 방향으로 길이 7 의 선을 그 립니다.
지시 사항은 다음과 같은 방식으로 번역됩니다.
7 0 1
↖ ↑ ↗
6 ← X → 2
↙ ↓ ↘
5 4 3
아무것도 출력되지 않으면 05AB1E는 자동으로 캔버스 결과를 출력합니다.
답변
숯 , 17 15 바이트
NθP×θAM⊘θ↗P^×θA
온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 설명:
Nθ
입력 n
.
P×θA
큰 가로 막대를 인쇄합니다 A
. (짝수의 경우 n+1
어쨌든 오른쪽이 겹칩니다.)
M⊘θ↗
큰 상단으로 이동하십시오 A
.
P^×θA
큰 양면을 인쇄합니다 A
.
답변
파이썬 2 , 80 바이트
lambda n:'\n'.join(' '*(n+~i)+('A'+' A'[i==n/2]*n*2)[:i*2]+'A'for i in range(n))
원하는 출력을 왼쪽 공백, 왼쪽 A
+ 중간 공백 또는 A
s 및 오른쪽 으로 나눕니다 A
. 고정 문자열에서 슬라이싱을 사용하여 중간 부분을 계산하십시오. 이것은 같은 방식으로 첫 번째 줄을 생성 할 수있게합니다.
답변
Stax , 15 바이트
┴3╬*ôP^x'┌_╓J²♫
압축 해제, 압축 해제 및 주석 처리 된 프로그램은 다음과 같습니다.
m map over [1 .. input] using rest of the program, output each result
'A "A" literal
xhi= is the iteration index equal to (integer) half the input?
65* multiply by 65 (character code of "A")
]i* repeat that character (" " or "A") i times
+ concat to initial "A"
x) left pad to the original input
|p palindromize (concatenate the reverse minus the last character)
답변
자바 스크립트 (ES6), 77 바이트
이 소스 코드는 사각형 모양입니다 ! 아 잠깐만 … 잘못된 도전 :-/
f=(n,k=n>>1,p='A')=>--n?f(n,k,' '+p)+`
${p}${(k-n?' ':'A').repeat(n*2-1)}A`:p
답변
파이썬 3.6 , 79 바이트 또는 73 바이트
문자의 가로 부분을 정렬하기 위해 f- 문자열 사용 :
lambda n:'\n'.join(f"{'A'+' A'[i==n//2]*2*i:>{n+i}}"[:-1]+'A'for i in range(n))
와 \b
하나를 삭제하는 데 사용 A
(아마도 부정 행위) :
lambda n:'\n'.join(f"{'A'+' A'[i==n//2]*2*i:>{n+i}}\bA"for i in range(n))
답변
자바 (JDK 10) , 124 바이트
n->{var a=new char[n][n+n-1];for(int c=n,r;c-->0;)for(r=n;r-->0;)a[r][n+n-c-2]=a[r][c]+=r==n/2&c>=r|r==n+~c?65:32;return a;}