FizzBuzz è così semplice, scommetto che puoi farlo all'indietro. In questa sfida, ti verrà data la lunghezza della stringa FizzBuzz e dovrai fornire il numero intero positivo che ha prodotto quella stringa.
Descrizione
Per scomporlo, una stringa FizzBuzz per nviene generata dal seguente algoritmo.
Inizia con una stringa vuota e, per ogni i=1..n(incluso):
- Se
iè divisibile per3e5, aggiungiFizzBuzzalla stringa. - Se
iè solo divisibile per3appendFizz. - Se
iè solo divisibile per5appendBuzz. - Se non
iè divisibile per nessuno dei due, aggiungi la rappresentazione decimale dii.
Quindi ad esempio FizzBuzz(15)è il seguente:
12Fizz4BuzzFizz78FizzBuzz11Fizz1314FizzBuzz
Ti verrà dato Length(FizzBuzz(n))e devi determinare n. Si può presumere che l'ingresso sia positivo e sarà sempre la lunghezza di una stringa FizzBuzz.
Regole
La soluzione può essere un programma completo o una definizione di funzione in qualsiasi linguaggio accettabile standard. Il tuo programma / funzione può accettare argomenti e restituire risposte in qualsiasi modo accettato normalmente . Sono vietate le scappatoie standard.
Si può presumere che l'input sia positivo e valido (descrive la lunghezza di una stringa FizzBuzz) ed è più piccolo dell'intero più grande rappresentabile nativamente nella propria lingua.
Questo è il golf del codice, quindi vince il conteggio dei byte più breve.
Esempi
Ecco alcuni esempi di casi
Length(FizzBuzz(n)) -> n
1 -> 1
6 -> 3
15 -> 6
313 -> 100
3677 -> 1001
modificare
Risolto l'ultimo caso di prova. Grazie @SteadyBox.