Schreiben Sie ein Programm oder eine Funktion, die eine positive Ganzzahl N akzeptiert. Geben Sie eine Liste aller eindeutigen Dezimalzahlen aus, die mit Ziffern ( 0123456789
), Dezimalpunkten ( .
) und negativen Vorzeichen ( -
) in genau N Zeichen geschrieben werden können .
Zum Beispiel sind einige Zahlen , die in der N = 4 Ausgabeliste sein würden , sind 1337
, 3.14
, .999
, -789
, -2.7
, und -.09
.
Die Zahlen sind wie gewohnt, aber so kurz wie möglich zu schreiben . Das heisst:
Der Dezimalpunkt sollte nur eingefügt werden, wenn die Zahl keine Ganzzahl ist.
- zB
45.0
und45.
sollte als klar geschrieben werden45
-45.00
sollte geschrieben werden als-45
- zB
Vor dem Dezimalpunkt dürfen keine führenden Nullen stehen.
03
und003
sollte so geschrieben werden3
, aber30
und300
sind in Ordnung, wie sie sind0.3
und00.3
sollte als gerecht geschrieben werden.3
-03
sollte geschrieben werden als-3
-0.3
sollte geschrieben werden als-.3
Nach dem Komma dürfen keine nachgestellten Nullen stehen
.50
und.500
sollte geschrieben werden als.5
900.090
sollte geschrieben werden als900.09
Die Ausnahme zu den beiden letzten Regeln ist die Null selbst, die immer als einfach geschrieben werden sollte
0
.Positive Zeichen (
+
) sollten nicht verwendet werden, da sie die Zahl unnötig verlängern.
Beachten Sie auch, dass das negative Vorzeichen ( -
) nicht als Subtraktionszeichen verwendet werden darf. Es sollte nur als erstes Zeichen von Zahlen kleiner als Null erscheinen.
Formatierung
Die Reihenfolge der ausgegebenen Nummernliste spielt keine Rolle. Es kann aufsteigend, absteigend oder völlig durcheinander sein. Es kommt nur darauf an, dass alle eindeutigen Zahlen, die in N Zeichen geschrieben werden können, vorhanden sind.
Die Liste kann in angemessener Weise mit Leerzeichen, Zeilenumbrüchen, Kommas oder anderen Zeichen zwischen den Zahlen formatiert werden, sofern die Dinge konsistent sind. Führende und nachfolgende Klammern (oder ähnliches) sind in Ordnung, Anführungszeichen um Zahlen jedoch nicht. (dh verwechseln Sie Strings und Ints / Floats nicht sichtbar in der Ausgabe.)
Wenn beispielsweise N = 1 ist, sind einige gültige Ausgaben:
0 1 2 3 4 5 6 7 8 9
[1, 2, 3, 4, 5, 6, 7, 9, 0]
ans = { 5 8 9 1 3 2 0 3 4 7 6 }
Das wäre aber ungültig:
[0, 1, 2, 3, 4, "5", "6", "7", "8", "9"]
Beispiele
N = 1 -> 0 1 2 3 4 5 6 7 8 9
N = 2 -> -9 -8 -7 -6 -5 -4 -3 -2 -1 .1 .2 .3 .4 .5 .6 .7 .8 .9 10 11 12 ... 97 98 99
N = 3 -> -99 -98 ... -11 -10 -.9 -.8 ... -.2 -.1 .01 .02 ... .98 .99 1.1 1.2 ... 1.9 2.1 2.2 ... 2.9 3.1 ...... 9.9 100 101 ... 998 999
Die Listen sind in aufsteigender Reihenfolge und an einigen Stellen zum besseren Lesen mit Auslassungspunkten versehen.
Wertung
Der kürzeste Code in Bytes gewinnt. Bei Stimmengleichheit gewinnt die höher gewählte Antwort
Also note that the negative sign (-) should not be used as a subtraction sign. It should only appear as the first character of numbers less than zero.
0
".
-0
eine gültige Ausgabe sein?