Schreiben Sie für eine ganze Zahl n
, die erfüllt n > 0
, ihren Wert als nach rechts absteigenden Pfad auf der Grundlage ihrer Binärdarstellung.
Regeln
- Das erste (höchstwertige) gesetzte Bit befindet sich immer in der oberen linken Ecke.
- Wenn das nächste Bit gesetzt ist (a
1
), zeichnen Sie ein Zeichen ("gefüllt") in der nächsten Zeile in der gleichen Spalte wie das vorherige Zeichen. Versuchen Sie, Leerzeichen ("leer") zu verwenden, aber jedes Zeichen kann verwendet werden, solange es immer dasselbe ist. - Wenn das nächste Bit nicht gesetzt ist (a
0
), zeichnen Sie ein Zeichen ("gefüllt") in derselben Zeile unmittelbar rechts vom vorherigen Zeichen. - Ihr Code muss Zahlen mit mindestens 20 signifikanten Bits unterstützen.
- Schreiben Sie ein vollständiges Programm, eine Funktion, ein Lambda usw., aber kein Snippet.
- Keine führenden Leerzeichen (oder "leere" Zeichen) / Zeilen erlaubt
- Beliebig viele Leerzeichen (oder "leere" Zeichen) / Zeilen zulässig
- Es werden alle Arten von 1D-Eingaben akzeptiert: Zahl, Zeichenfolge, Array von Booleschen Werten usw. Die Reihenfolge der Bits bleibt jedoch unverändert.
- Jede Art von visueller 2D-Ausgabe wird akzeptiert: Auf stdout, einer Zeichenfolge (wobei zwei unterschiedliche Werte für "gefüllt" und "leer" stehen), können Sie sogar eine Matrix ausgeben, wenn Sie möchten. Eine Liste von Zahlen scheint schwer mit der Regel "keine Überschriften-Leerzeichen" in Einklang zu bringen, aber ich bin offen dafür, wenn Sie eine Möglichkeit finden, sie zu verwenden. Hinweis: Wenn Sie eine Zeichenfolge drucken oder zurückgeben möchten, müssen die verwendeten Zeichen ASCII-Zeichen im Codepunktbereich [32-126] sein.
- Standardlücken sind verboten.
- Das ist Codegolf, also gewinnt der kürzeste Code.
Beispiele
Eingabe: 1
*
Eingabe: 2
**
Eingabe: 3
*
*
Eingabe: 4
***
Eingabe: 5
**
*
Eingabe: 6
*
**
Eingabe: 7
*
*
*
Eingabe: 25
*
***
*
Eingabe: 699050
**
**
**
**
**
**
**
**
**
**
Eingabe: 1047552
*
*
*
*
*
*
*
*
*
***********
Eingabe: 525311
**********
*
*
*
*
*
*
*
*
*
*
[1,0,1]
yes".
9
ist 1001
ich meine Eingabe sein möchte 0011
. Ist das in Ordnung?
1
erstes zu haben, ist Teil der Herausforderung, und das (Wieder-) Verschieben dieses Bits würde die Herausforderung trivialisieren. Ich fürchte, ich muss Ihnen nein sagen, @TonHospel. Sie können es jedoch aus Ihrer Eingabe im Programm entfernen.