Escreva um programa ou função que receba um número inteiro positivo N e emita os primeiros números N desse padrão em zigue-zague de amplificação, usando apenas as linhas necessárias:
26
25 27 .
10 24 28 .
9 11 23 29 .
2 8 12 22 30 44
1 3 7 13 21 31 43
4 6 14 20 32 42
5 15 19 33 41
16 18 34 40
17 35 39
36 38
37
Então, se N é 1
a saída é
1
Se N for 2
, a saída é
2
1
Se N é 3
a saída é
2
1 3
Se N é 4
a saída é
2
1 3
4
Se N é 10
a saída é
10
9
2 8
1 3 7
4 6
5
Se N é 19
a saída é
10
9 11
2 8 12
1 3 7 13
4 6 14
5 15 19
16 18
17
e assim por diante.
Notas
Cada pico ou calha do zigue-zague atinge seu ponto a mais uma linha da linha com a
1
do que o pico ou calha anterior.N não está limitado a
44
. O ziguezague cresce no mesmo padrão e N maior deve ser suportado.Números com vários dígitos devem "tocar" apenas nos cantos, conforme mostrado. Verifique se isso funciona quando N está
100
acima.Não deve haver linhas vazias (ou apenas espaço) na saída, exceto uma nova linha à direita opcional.
Qualquer linha pode ter qualquer quantidade de espaços à direita.
Pontuação
O código mais curto em bytes vence. O desempatador é a resposta anterior.