Para um número inteiro n
satisfatório n > 0
, escreva seu valor como um caminho descendente à direita com base em sua representação binária.
Regras
- O primeiro bit de conjunto (mais significativo) está sempre no canto superior esquerdo.
- Quando o próximo bit estiver definido (a
1
), desenhe um caractere ("preenchido") na próxima linha da mesma coluna que o caractere anterior desenhado. Tente usar espaços ("vazios") para preencher, mas qualquer caractere funcionará desde que seja sempre o mesmo. - Quando o próximo bit estiver desmarcado (a
0
), desenhe um caractere ("preenchido") na mesma linha imediatamente à direita do caractere anterior desenhado. - Seu código deve suportar números com pelo menos 20 bits significativos.
- Escreva um programa completo, uma função, um lambda, etc., mas nenhum trecho.
- Não são permitidos espaços à esquerda (ou caracteres "vazios") / linhas
- Qualquer número de espaços à direita (ou caracteres "vazios") / linhas permitidos
- Qualquer tipo de entrada 1D é aceita: número, string, conjunto de booleanos, etc. Entretanto, mantenha a ordem dos bits intocados.
- Qualquer tipo de saída 2D visual é aceita: no stdout, uma string (com dois valores distintos representando "preenchido" e "vazio"), você pode até gerar uma matriz, se desejar. Parece difícil conciliar uma lista de números com a regra "sem espaços de cabeçalho", mas estou aberto a ela se você encontrar uma maneira de usá-la. Nota: se você optar por imprimir ou retornar uma sequência, os caracteres usados deverão ser caracteres ASCII no intervalo de pontos de código [32-126].
- As brechas padrão são proibidas.
- Este é um codegolf, então o código mais curto vence.
Exemplos
Entrada: 1
*
Entrada: 2
**
Entrada: 3
*
*
Entrada: 4
***
Entrada: 5
**
*
Entrada: 6
*
**
Entrada: 7
*
*
*
Entrada: 25
*
***
*
Entrada: 699050
**
**
**
**
**
**
**
**
**
**
Entrada: 1047552
*
*
*
*
*
*
*
*
*
***********
Entrada: 525311
**********
*
*
*
*
*
*
*
*
*
*
[1,0,1]
sim.
9
é que 1001
eu gostaria que minha entrada fosse 0011
. Tudo bem?
1
primeiro é parte do desafio, e (re) movê-lo seria banalizar o desafio, por isso tenho medo de dizer que não, @TonHospel. Você pode removê-lo da sua entrada no programa.