자바 스크립트 (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)
온라인으로 사용해보십시오!
방법?
이것은 문자별로 출력 문자를 빌드합니다.
입력 n 주어지면 다음 을 계산합니다.
n′=n−1w=3n′
(x,y) 각 문자에 대해 (h,v) 계산합니다 .
h=w/2−|x−w/2|v=w/2−|y−w/2|
팔각형에 속하는 셀은 다음 조건 중 하나를 만족합니다.
- ( h=0 OR v = 0 ) AND h+v≥n′ (아래 빨간색)
- h+v=n′ (아래 주황색)
예를 들어, n=4 (및 n′=3 ) 인 경우 :
(0,0)(0,1)(0,2)(0,3)(0,4)(0,4)(0,3)(0,2)(0,1)(0,0)(1,0)(1,1)(1,2)(1,3)(1,4)(1,4)(1,3)(1,2)(1,1)(1,0)(2,0)(2,1)(2,2)(2,3)(2,4)(2,4)(2,3)(2,2)(2,1)(2,0)(3,0)(3,1)(3,2)(3,3)(3,4)(3,4)(3,3)(3,2)(3,1)(3,0)(4,0)(4,1)(4,2)(4,3)(4,4)(4,4)(4,3)(4,2)(4,1)(4,0)(4,0)(4,1)(4,2)(4,3)(4,4)(4,4)(4,3)(4,2)(4,1)(4,0)(3,0)(3,1)(3,2)(3,3)(3,4)(3,4)(3,3)(3,2)(3,1)(3,0)(2,0)(2,1)(2,2)(2,3)(2,4)(2,4)(2,3)(2,2)(2,1)(2,0)(1,0)(1,1)(1,2)(1,3)(1,4)(1,4)(1,3)(1,2)(1,1)(1,0)(0,0)(0,1)(0,2)(0,3)( 0 , 4 )( 0 , 4 )( 0 , 3 )( 0 , 2 )( 0 , 1 )( 0 , 0 )