Einführung
Geben Sie alle Zahlen in einer bestimmten Basis aus, die in einer angepassten Version des Siebenerspiels erscheinen würden.
Herausforderung
Ihre Aufgabe ist es, alle Zahlen in einer bestimmten Basis in einem bestimmten Bereich auszugeben und diejenigen zu überspringen, die bestimmten Bedingungen entsprechen.
Sie erhalten vier Eingänge: base
elim
start
und end
. Die Rollen der vier Variablen sind wie folgt:
base
Gibt an, welche Basis wir für die anderen drei Variablen und auch für die Ausgabe verwenden. Eine Möglichkeit, dies auszudrücken, besteht darin, ein einzelnes Zeichen zu verwenden, das '8', '9' oder ein Großbuchstabe von 'A' bis 'Z' ist, wobei 'A' für das Dezimalsystem und 'G' für das Hexadezimalsystem verwendet werden. Die Basen, die voraussichtlich unterstützt werden, sind 8 bis 35 (einschließlich). Dies ist nur meine vorgeschlagene Art, das auszudrücken,base
und ich werde es im Abschnitt Beispiel für Eingabe und Ausgabe verwenden , aber es ist auch in Ordnung, Ihre eigene Art zu verwenden, um es auszudrücken. Beispielsweise können Sie das Formatbase
als übliche Dezimaldarstellung wählen .start
undend
sind zwei Zeichenfolgen, die den Bereich der auszugebenden Zahlen angeben, ausgedrückt in der angegebenenbase
. Wennbase
istG
undstart
ist10
undend
ist1F
, müssen Sie ausgeben10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
, aber Sie müssen auch einige davon entfernen, basierend auf dem, waselim
ist, was bald erklärt wird.elim
ist ein einzelnes Zeichen und muss eine gültige Ziffer in der angegebenen seinbase
. Alle Zahlen, die die Ziffer enthaltenelim
oder Vielfache von sind,elim
sollten aus der Liste entfernt werden, um die endgültige Ausgabe zu generieren.
Im obigen Fall, wenn elim
ist 7
, dann 17
müssen beseitigt werden , da sie die Ziffer enthält 7
. 15
und 1C
müssen auch beseitigt werden, weil sie ein Vielfaches von sind 7
. Die endgültige Ausgabe wäre also10 11 12 13 14 16 18 19 1A 1B 1D 1E 1F
Testfälle
Input -> Output
G,7,10,1F -> 10 11 12 13 14 16 18 19 1A 1B 1D 1E 1F
A,3,1,100 -> 1 2 4 5 7 8 10 11 14 16 17 19 20 22 25 26 28 29 40 41 44 46 47 49 50 52 55 56 58 59 61 62 64 65 67 68 70 71 74 76 77 79 80 82 85 86 88 89 91 92 94 95 97 98 100
G,A,96,C0 -> 97 98 99 9B 9C 9D 9E 9F B0 B1 B2 B3 B5 B6 B7 B8 B9 BB BC BD BF C0
Der dritte Testfall wird nach dem ursprünglichen Beitrag hinzugefügt. Alle Antworten, die vor der Bearbeitung veröffentlicht wurden, wurden getestet und haben den dritten Test bestanden.
Technische Daten
Die Eingabe ist immer gültig, machen Sie sich also keine Sorgen um die Ausnahmebehandlung.
Dies ist Code-Golf , die niedrigste Anzahl von Bytes gewinnt.
Sie können Eingaben vornehmen und Ausgaben über jedes Standardformular bereitstellen , und Sie können das Format frei wählen.
Wie üblich gelten hier Standardlücken .
Dies basiert auf der (realen) Version des Siebener-Spiels .
Ich
base
muss mindestens 8 sein, nur aufgrund des persönlichen Geschmacks. Ich möchte nur nicht, dass die Anzahl der Ziffern in der Sequenz zu schnell wächst.
Anzeigetafel
Ausschnitt aus dieser Frage . Führen Sie das Snippet aus, um die Anzeigetafel zu erhalten.
start
, end
und elim
milder.
"G,7,10,1F"
Eingabe würde ein vollständig flexibler Ansatz beispielsweise [16,7,16,31]
als Eingabe und [[1,0],[1,1],[1,2],[1,3],[1,4],[1,6],[1,8],[1,9],[1,10],[1,11],[1,13],[1,14],[1,15]]
als Ausgabe ermöglichen. (Beachten Sie, dass bei der ersten Antwort davon ausgegangen wurde, dass ein Teil davon bereits zulässig war, da dies ziemlich normal ist - aber es liegt ganz bei Ihnen).
base,elim,start,end
, ‚A‘ für Dezimalsystem , ‚G‘ für hexadezimale System ), versuchen Sie Ihre Testfälle in einer Art und Weise zu formatieren, ist leicht zu Verwenden und verwenden Sie die Sandbox , um Feedback zu erhalten, bevor Sie sie auf der Hauptseite veröffentlichen. Insgesamt ist dies eine gute erste Herausforderung!