Dato un array di numeri interi positivi in base 10, dove n > 0
, emette la loro rappresentazione di un muro binario.
Come funziona?
- Converti ogni numero nella sua rappresentazione binaria.
- Riempi la rappresentazione con zeri iniziali per la lunghezza di quella più lunga, ovvero
1, 2
->1, 10
->01, 10
. - Crea un muro in cui le
1
s sono mattoni e le0
s sono mattoni mancanti.
Un muro è un blocco di caratteri in cui qualsiasi personaggio stampabile rappresenta un mattone e uno spazio ( 32
) rappresenta un mattone mancante. Puoi scegliere qualsiasi personaggio per il mattone, non è necessario che sia distinto attraverso il muro purché non sia un personaggio bianco. Il carattere di mattone mancante deve essere uno spazio. Nell'esempio seguente ho usato *
i mattoni.
Esempio
Ingresso:
[ 15, 7, 13, 11 ]
[ 1111, 111, 1101, 1011 ]
[ 1111, 0111, 1101, 1011 ]
Produzione:
**** *** ** * * **
Regole
- L'input deve essere preso nella base 10, se la tua lingua accetta altre basi non puoi usarle.
- Sono consentite nuove e iniziali linee.
- L'input può essere preso come un elenco di numeri interi, argomenti separati o qualsiasi formato ragionevole.
- L'output può essere in qualsiasi formato ragionevole: nuova stringa separata da riga, matrice di linee, matrice 2d ecc.
- Le scappatoie standard non sono ammesse.
Casi test
Si noti che nel primo caso di test tutti gli strati hanno un mattone vuoto alla fine.
[ 14, 4, 6, 2 ]
***
*
**
*
[ 1, 2, 4, 8, 16 ]
*
*
*
*
*
[ 15, 11, 15, 15 ]
****
* **
****
****
[ 11, 10, 9, 8 ]
* **
* *
* *
*
Questo è il codice golf, quindi vince il codice più corto!
[[1, " ", 1, " "], ...]