Escreva um programa que receba um número inteiro N via stdin ou pela linha de comando.
Se N for 0, a letra única O
deverá ser impressa em stdout.
Se N for positivo , essa dupla hélice horizontal ASCII art , desenhada com N segmentos de largura, deve ser impressa.
Se N for 1, a saída é:
/\
O O
\/
Se N for 2, a saída é:
/\ /\
O / O
\/ \/
Se N for 3, a saída é:
/\ /\ /\
O / / O
\/ \/ \/
Se N for 4, a saída é:
/\ /\ /\ /\
O / / / O
\/ \/ \/ \/
O padrão continua exatamente da mesma maneira para N. maior. Observe que a barra ( /
) deve ser usada em todos os lugares em que as hélices se cruzam, exceto nas O
extremidades.
Se N for negativo , essa dupla hélice vertical ASCII art, com segmentos -N altos, deve ser impressa.
Se N for -1, a saída é:
O
/ \
\ /
O
Se N for -2, a saída é:
O
/ \
\ /
\
/ \
\ /
O
Se N for -3, a saída é:
O
/ \
\ /
\
/ \
\ /
\
/ \
\ /
O
Se N for -4, a saída é:
O
/ \
\ /
\
/ \
\ /
\
/ \
\ /
\
/ \
\ /
O
O padrão continua exatamente da mesma maneira para N. menor. Observe que as barras invertidas ( \
) devem ser usadas em todos os lugares em que as hélices se cruzam, exceto nas O
extremidades.
Detalhes
- Em vez de um programa, você pode escrever uma função que recebe N como um número inteiro e imprime o resultado normalmente ou o retorna como uma sequência.
- A saída para qualquer N pode opcionalmente conter uma nova linha à direita.
- Qualquer linha de saída para qualquer N pode opcionalmente conter 4 ou menos espaços à direita.
- Nunca deve haver espaço à esquerda que não faça parte do padrão especificado.
- O código mais curto em bytes vence.
<spc>O<spc>
ou \nO\n
. É unnecesary líder espaço em branco permitido?
print "."
Aumente o zoom para ver a hélice. * nodnod *