입력 integer가 주어지면 문자 n > 1
로 구성된 측면 길이를 가진 ASCII 아트 팔각형을 출력하십시오 n
. 아래 예를 참조하십시오.
n=2
##
# #
# #
##
n=3
###
# #
# #
# #
# #
# #
###
n=4
####
# #
# #
# #
# #
# #
# #
# #
# #
####
n=5
#####
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
#####
and so on.
STDOUT에 인쇄하거나 함수 결과로 리턴 할 수 있습니다.
문자가 적절하게 정렬되는 한 외부 공백은 허용됩니다.
규칙 및 I / O
답변
05AB1E , 3 바이트
7ÝΛ
설명
# implicit input as length
# implicit input as string to print
7Ý # range [0...7] as directions
Λ # canvas print
05AB1E 캔버스를 이해하려면 이 답변 을 참조하십시오 .
답변
자바 스크립트 (ES6) 114 106 105 104 103 바이트
n=>(g=x=>v=x*2>w?w-x:x,F=x=>~y?`#
`[~x?(h=g(x--))*g(y)>0&h+v!=n|n>h+v:(y--,x=w,2)]+F(x):'')(y=w=--n*3)
방법?
이것은 문자별로 출력 문자를 빌드합니다.
입력
주어지면 다음 을 계산합니다.
각 문자에 대해
계산합니다 .
팔각형에 속하는 셀은 다음 조건 중 하나를 만족합니다.
- (
OR ) AND (아래 빨간색)
(아래 주황색)
예를 들어,
(및
) 인 경우 :
답변
숯 , 5 바이트
GH*N#
차콜에 대한 첫 번째 답변!
설명:
GH*N# //Full program
GH //Draw a hollow polygon
* //with 8 sides
N //of side length from input
# //using '#' character
답변
캔버스 , 15 14 12 바이트
/⁸⇵╷+×+:⤢n╬┼
설명:
/ a diagonal of length n
⁸ the input,
⇵ ceiling divided by 2, (storing the remainder)
╷ minus one
#× repeat "#" that many times
+ append that to the diagonal
:⤢n overlap that with its transpose
╬┼ quad-palindromize with the overlap being the remainder stored earlier
답변
R , 122 (117) 115 바이트
function(n){n=n-1
m=matrix(0,y<-3*n+1,y)
v=t(h<-(w=3*n/2)-abs(row(m)-1-w))
m[h*v&h+v-n|h+v<n]=' '
write(m,1,y,,"")}
Arnauld의 답변 에서 논리 , 특히 추가 개선 이 필요한 경우이 개정 을 포팅합니다 . Arnauld의 논리 반전에 대한 제안 덕분에 또 다른 2 바이트가 절약되었습니다!
답변
파이썬 2 , 96 바이트
a=b=n=input()
while a>2-n-n:a-=1;b-=a/~-n+1;s=(-~b*' '+'#').ljust(n);print s+s[-1]*(n-2)+s[::-1]