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 startund end. Die Rollen der vier Variablen sind wie folgt:
baseGibt 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,baseund 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 Formatbaseals übliche Dezimaldarstellung wählen .startundendsind zwei Zeichenfolgen, die den Bereich der auszugebenden Zahlen angeben, ausgedrückt in der angegebenenbase. WennbaseistGundstartist10undendist1F, 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, waselimist, was bald erklärt wird.elimist ein einzelnes Zeichen und muss eine gültige Ziffer in der angegebenen seinbase. Alle Zahlen, die die Ziffer enthaltenelimoder Vielfache von sind,elimsollten aus der Liste entfernt werden, um die endgültige Ausgabe zu generieren.
Im obigen Fall, wenn elimist 7, dann 17müssen beseitigt werden , da sie die Ziffer enthält 7. 15und 1Cmü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
basemuss 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, endund elimmilder.
"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!