입력 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]