FizzBuzz ist so einfach, dass Sie es wahrscheinlich rückwärts machen können. In dieser Herausforderung erhalten Sie die Länge der FizzBuzz-Zeichenfolge und müssen die positive Ganzzahl angeben, die diese Zeichenfolge erzeugt hat.
Beschreibung
Um dies aufzuschlüsseln, ein FizzBuzz-String für n wird vom folgenden Algorithmus generiert.
Beginnen Sie mit einem leeren String und für jeden i=1..n(inklusive):
- Wenn dies
idurch3und durch teilbar ist5, hängen Sie esFizzBuzzan die Zeichenfolge an. - If
iist nur durch3Append teilbarFizz. - If
iist nur durch5Append teilbarBuzz. - Wenn
idurch keine teilbar ist, hängen Sie die Dezimalrepräsentation von ani.
Zum Beispiel FizzBuzz(15)ist das folgende:
12Fizz4BuzzFizz78FizzBuzz11Fizz1314FizzBuzz
Sie werden gegeben Length(FizzBuzz(n))und müssen bestimmen n. Sie können davon ausgehen, dass die Eingabe positiv ist und immer der Länge einer FizzBuzz-Zeichenfolge entspricht.
Regeln
Ihre Lösung kann ein vollständiges Programm oder eine Funktionsdefinition in einer beliebigen Standardsprache sein. Ihr Programm / Ihre Funktion kann Argumente aufnehmen und Antworten auf jede übliche Weise zurückgeben . Standardlücken sind verboten.
Sie können davon ausgehen, dass die Eingabe positiv und gültig ist (beschreibt die Länge einiger FizzBuzz-Zeichenfolgen) und kleiner als die größte in Ihrer Sprache nativ darstellbare Ganzzahl ist.
Dies ist Codegolf, also gewinnt die kürzeste Anzahl an Bytes.
Beispiele
Hier sind einige Beispielfälle
Length(FizzBuzz(n)) -> n
1 -> 1
6 -> 3
15 -> 6
313 -> 100
3677 -> 1001
Bearbeiten
Letzter Testfall behoben. Vielen Dank @SteadyBox.