Hintergrund
Als ich in der Grundschule war, haben wir ein Mathe-Spiel gespielt, das wie folgt aussieht.
Alle Kinder sitzen in einem großen Kreis und wechseln sich ab, beginnend mit 1 .
Die folgenden Zahlen müssen jedoch beim Zählen übersprungen werden:
- Zahlen, die ein Vielfaches von 3 sind .
- Zahlen, deren Dezimalzahl eine 3 enthält .
Die ersten 15 Zahlen, die die Kinder sagen sollten, sind
1 2 4 5 7 8 10 11 14 16 17 19 20 22 25
Wenn jemand eine falsche Nummer hat - eine Nummer sagt, die nicht in der Sequenz enthalten ist, oder eine andere überspringt - wird er aus dem Kreis entfernt. Das geht so lange, bis nur noch ein Kind übrig ist.
Aufgabe
Du bist schlecht in diesem Spiel, also entscheidest du dich zu betrügen. Schreiben Sie ein Programm oder eine Funktion, die bei gegebener Nummer der Sequenz die nächste Nummer der Sequenz berechnet.
Sie müssen keine Zahlen verarbeiten, die mit dem systemeigenen numerischen Typ Ihrer Sprache nicht dargestellt werden können, sofern Ihr Programm bis zur Eingabe 251 ordnungsgemäß funktioniert und Ihr Algorithmus für beliebig große Eingaben funktioniert.
Ein- und Ausgabe können auf jeder beliebigen Basis erfolgen.
Da Sie Ihren Code verbergen müssen, muss er so kurz wie möglich sein. In der Tat ist dies Code-Golf , so dass der kürzeste Code in Bytes gewinnt.
Testfälle
1 -> 2
2 -> 4
11 -> 14
22 -> 25
29 -> 40
251 -> 254
7
übersprungen, wenn ich es spielte, aber Sie würden stattdessen etwas anderes sagen, anstatt zur nächsten Nummer in der Schlange zu gehen.