Escriba una función o programa con nombre que acepte un solo número entero N e imprima (en STDOUT) o devuelva (como una cadena) las primeras N barras de la espiral a continuación, comenzando con la barra vertical en el centro y girando en sentido horario hacia afuera.
_______________
/ _____________ \
/ / ___________ \ \
/ / / _________ \ \ \
/ / / / _______ \ \ \ \
/ / / / / _____ \ \ \ \ \
/ / / / / / ___ \ \ \ \ \ \
/ / / / / / / _ \ \ \ \ \ \ \
/ / / / / / / / \ \ \ \ \ \ \ \
| | | | | | | | | | | | | | | |
\ \ \ \ \ \ \___/ / / / / / / /
\ \ \ \ \ \_____/ / / / / / /
\ \ \ \ \_______/ / / / / /
\ \ \ \_________/ / / / /
\ \ \___________/ / / /
\ \_____________/ / /
\_______________/ /
Puede suponer que 0 <N <= 278. Su salida no puede contener ningún espacio en blanco delante del carácter más a la izquierda de la espiral. Opcionalmente, puede imprimir una nueva línea final.
Para una entrada de 10, la salida correcta es
_
/ \
| |
\___/
Para una entrada de 2, la salida correcta es
/
|
Para una entrada de 20, la salida correcta es
___
/ _ \
/ / \ \
| | | |
\___/ /
Una salida que sería incorrecta porque el carácter de la izquierda está precedido por espacios en blanco es
___
/ _ \
/ / \ \
| | | |
\___/ /
El ganador es el envío más corto, en bytes.
|
) son simplemente el carácter más cercano que puede representar la reunión de a /
y \
.