Hexadezimal ist ein Basis-16-Zählsystem, das von 0
bis geht f
. Ihre Aufgabe ist es, einen Zähler zu erstellen, der diese Zahlen anzeigt.
Beispiel:
$ python counter.py
1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30
Regeln:
- Die Zahlen können durch Leerzeichen, Tabulatoren oder neue Zeilen getrennt sein.
- Die Mindestanzahl, zu der Sie gehen müssen, ist
30
(48 in Dezimalzahl).- Sie können das Programm auch für immer drucken lassen, bis es gestoppt wird.
- Buchstaben können in Groß- oder Kleinbuchstaben (
A
odera
) geschrieben sein. - Keine eingebauten Funktionen erlaubt (die sich direkt auf hexadezimale Konvertierungen / Zählungen auswirken).
- Führende Nullen sind zulässig
- Es kann von
1
oder beginnen0
- Der kürzeste Code gewinnt!
code-golf
hexadecimal
Phase
quelle
quelle
Antworten:
Pyth - 12 Bytes
Verwendet kartesisches Produkt und sortiert am Ende, um die richtige Reihenfolge zu erhalten. Anschließend werden Leerzeichen eingefügt. Drucke
00-ff
inklusive.Probieren Sie es hier online aus .
quelle
Pure Bash , 26
Zählt von 0x0 bis 0x3F:
Probieren Sie es online aus!
quelle
CJam,
2114 BytesDruckt die Zahlen 00 bis 9F.
Probieren Sie es online im CJam-Interpreter aus .
Wie es funktioniert
quelle
Python 2, 52
Druckt
00
auf3F
. Nutzt die Tatsache, dass die erste Ziffera
immer eine Zahl in diesem Bereich ist. Durchläuft vier Zyklen der zweiten Zifferb
und erhöht sich,a
wann immer die zweite Ziffer istF
.Dies ist ein Zeichen kürzer als das direktere
quelle
n ='0123'
sollte einige Zeichen sparenthing in n + restofstring
n='0123' for a in n: for b in n+'456789ABCDEF':print a+b
0123
für etwas anderes nicht ausreicht.JavaScript (ES6), 57 Byte
Gleicher Ansatz wie bei Python, nehme ich an.
quelle
TI-Basic, 63 Bytes
Dies sind 63 Bytes, laut dem Speicherverwaltungsbildschirm auf meinem Rechner, einem TI-84 +. Stellen Sie sicher, dass Sie das Programm mit einem teilweise ausgefüllten Startbildschirm starten!
quelle
Befunge-93, 57 Bytes
Druckt Zahlen von
00
bis8F
. Wenn Sie möchten, dass Ihre Programme für immer ausgeführt werden, wird die folgende Version nicht beendet und gibt kontinuierlich alle Nummern von00
bis ausFF
.quelle
0123456789ABCDEF01g::88+/2-0g,88+%0g,9,1+01p
bef.c
), die unbekannte Befehle (ABCDEF
) stillschweigend ignoriert .30
- diese Lösung wird den Stapel langsam überlaufen, also gibt es vermutlich einen Punkt der Beendigung. Außerdem ist die Ausgabe durch Tabulatoren getrennt; das OP sagte, dies sei in Ordnung. ) Oh, die Befunge-Implementierung, die Sie verwenden, sollte auch den gesamten 80x25-Torus mit Leerzeichen (ASCII0x20
) initialisieren .C
7875 BytesWir definieren eine Funktion
f()
, die ohne Argumente zum Drucken aufgerufen werden soll, und eine Hilfsfunktionx(int)
. Das bricht beiFF
.Erstaunlicherweise ist dies ein Byte kürzer als das offensichtlichere:
Warnung: Es wird nicht empfohlen, diesen Code außerhalb einer Debug-Umgebung auszuführen ...
Testen:
Ausgabe:
Der robustere (und betrügerischere) Ansatz ist natürlich diese 34-Byte-Funktion:
quelle
return y+
könnte möglicherweise seiny+=
.Pyth, 17 Bytes
Probieren Sie es hier aus
Wie es funktioniert:
quelle
jb^+jkUT<G6 2
verwendet das kartesische Produkt, um das Gleiche zu tun, scheint immer noch golffähig zu sein ...Javascript ES6,
6762 Bytesquelle
J, 22 Bytes
Zählt zu
ff
. Druckt eine zusätzliche neue Zeile zwischen jedem Zahlenblock0x10
wie folgt :quelle
Mumps - 65 Bytes
Nein ... Mumps sind noch nicht tot! :-)
quelle
CJam, 22 Bytes
Dies läuft für immer und ist daher wahrscheinlich eine der seltenen Situationen, in denen es eine gute Idee ist, keinen Permalink einzuschließen.
quelle
oNo
ist das gleiche wien
in TIO.TheC64Mini und Commodore BASIC (C64 / 128, PET, VIC-20, C16 / + 4) - 164 BASIC- und Tokenized-Bytes werden verwendet
Druckt ein doppeltes Leerzeichen nach der Hex-Nummer, um den Druck auf 40/80 Spalten sowie die 22 Spalten auf dem VIC-20 auszurichten.
quelle
Brainfuck , 2902 Bytes
Leicht zu outgolf, aber einen Versuch wert
Probieren Sie es online aus!
quelle
0-F
und dann den Druck fest codieren würden. Wie hast du es geschafft, es so lange zu machen?Python 2,
6655 BytesDies hätte wirklich der offensichtlichste Ansatz für mich sein sollen.
Alt (66 Bytes) : Technisch gesehen verursacht dies einen Fehler danach
FF
, aber es erreicht30
.Ich nahm an, dass die Formatierung von Zeichenfolgen nicht zulässig war, da ich mir ziemlich sicher bin, dass die Basiskonvertierung durchgeführt werden würde. Wenn dies jedoch zulässig wäre, wären dies 29 Byte:
quelle
Java, 104 Bytes
Wenn das
i<99
entfernt wird, erreicht es immer noch 30, stürzt aber schließlich ab. Ich bin mir nicht sicher, ob das akzeptabel ist.quelle
J, 47 Bytes
druckt 00 bis ff
quelle
>{;~'0123456789abcdef'
JavaScript
74726560quelle
Perl 6 , 34 Bytes
Das kürzeste, das ich finden kann, das keine Konvertierung verwendet, ist:
druckt
00
...FF
Leerzeichen in der Reihenfolge getrennt.Wenn Sie mehr wollen, können Sie
2
gegen eine größere Anzahl tauschen .(Verwenden Sie keine Zahl größer als 4, da die Werte vor der Ausgabe miteinander verknüpft werden, sodass eine erhebliche Menge an RAM benötigt wird.)
Das kürzeste, das niemals aufhört, Hex-Werte zu schreiben
Wenn
printf
erlaubt wäreWenn eine Basiskonvertierungsfunktion zulässig wäre
quelle
C ++ 14 - 135
quelle
'string' is not a member of 'std'
mit meinem.cout
. Ich denke du brauchst esiostream
auch. 2. Es druckt die Zahlen ohne Trennung. Die Herausforderung erfordert Leerzeichen, Tabulatoren oder Zeilenumbrüche. 3. Sie sollten die erforderliche Version von C ++ erwähnen.jq 1,5:
6559 Zeichen(56 Zeichen Code + 3 Zeichen Befehlszeilenoption.)
Probelauf:
Online-Test (Das
-r
Weiterleiten von URLs wird nicht unterstützt - überprüfen Sie die Rohausgabe selbst.)jq 1,5: 56 Zeichen
(53 Zeichen Code + 3 Zeichen Befehlszeilenoption.)
Dies erzeugt eine korrekte Ausgabe, ist jedoch nicht genau ein Zähler: Es werden die Werte nicht in der richtigen Reihenfolge generiert, sondern nur nachher sortiert.
Online-Test (Das
-r
Weiterleiten von URLs wird nicht unterstützt - überprüfen Sie die Rohausgabe selbst.)quelle
Dyalog APL , 12 Bytes
quelle
Malbolge , 900 Bytes
Verbessert werden ...
Probieren Sie es online aus!
quelle
Zsh,
4429 Bytes-15 , über GammaFunction online ausprobieren!
Original (44 Bytes):
g=0123456789abcdef;h=(${(s::)g});echo $^h$^h
quelle
h=({0..9} {a..f})
. 29 BytesPowerShell 6, 40 Byte
Probieren Sie es online aus!
Beginnt bei
00
und zählt bisFF
.quelle
8088 Assembly, IBM PC DOS, 34 Byte
Bytes
xxd
:Nicht zusammengebaut:
Standalone PC DOS genau, die Ausgabe erfolgt über die Konsole und wird so lange angezeigt, bis das Programm gestoppt wird. Nur ein Scratch-ASCII-Manipulationsprogramm hier. In x86- oder DOS / BIOS-APIs gibt es einfach keine integrierten oder praktischen Methoden zum Konvertieren von Binärwerten in Zeichenfolgen für die Ausgabe.
Ausgabe:
quelle
MUMPS , 57 Bytes
Ausgabe
Erläuterung
quelle
Haskell, 52 Bytes
quelle
Python 2 - 57 Bytes
Dies gibt 00 bis FF mit Leerzeichen dazwischen aus.
quelle