자바 스크립트 (ES6) 231 244
버그 수정, 일부 재정렬 및 높이 = 1을 관리하는 다른 방법 편집
또한 OP에서 허용하는 함수로 변경되었으므로 입력에 대한 prompt ()가 없습니다.
이 과제에 가장 적합하지 않은 일반 알고리즘에는 변경 사항이 없습니다.
F=h=>{for(p=s=[i=z=b=t=''];++p<h;)i=1,z=b=' ',s[p]=t;for(p=--h,k=64;++k<91;)s[p]+=t+String.fromCharCode(k),k-74||(s=s.map((x,q)=>x+(p-q?' ':'avascript'))),p-=i,p<0|p>h?(i=-i,p-=i+i,t=z,b=t+t):t+=b;console.log(s.join('\n'))}
설명
F=h=>{
// row in s for output must be initialized to ''. In the same step I make other initializations
for(p=s=[i=z=b=t='']; ++p < h;) // initialize for height 1, all increment and spacing can be null
i=1,z=b=' ',s[p]=t; // the for body is entered only if height > 1, initializing spacing and increment to the right values
for(p=--h,k=64;++k<91;)
s[p]+=t+String.fromCharCode(k),
k-74||(s=s.map((x,q)=>x+(p-q?' ':'avascript'))), // if 'J' modify each line of output adding the name or spacing
p-=i,p<0|p>h?(i=-i,p-=i+i,t=z,b=t+t):t+=b; // index bouncing
console.log(s.join('\n'))
}
예
1
ABCDEFGHIJavascriptKLMNOPQRSTUVWXYZ
3가
C G K O S W
B D F H Javascript L N P R T V X Z
A E I M Q U Y
상단에 4
D Javascript P V
C E I K O Q U W
B F H L N R T X Z
A G M S Y
7 추락
G S
F H R T
E I Q U
D Javascript P V
C K O W
B L N X Z
A M Y