Come probabilmente saprai, un numero di Fibonacci è quello che è la somma dei due numeri precedenti nella serie.
Una Fibonacci Digit ™ è quella che è la somma delle due cifre precedenti .
Ad esempio, per l'inizio della serie 1,1, la serie sarebbe 1,1,2,3,5,8,13,4,7,11,2...La modifica si verifica dopo il 13, dove, invece di aggiungere 8+13, si aggiunge 1+3. La serie scorre alla fine, dove 4+7=11e 1+1=2, come inizia la serie.
Per un altro esempio, le serie Beginning 2,2: 2,2,4,6,10,1,1,2,3,5,8,13,4,7,11,2,3.... Questo inizia in modo univoco, ma una volta che le cifre si sommano 10, si finisce con 1+0=1, 0+1=1, e la serie continua - e continua - allo stesso modo della 1,1serie.
La sfida
Dato un input intero 0≤n≤99, calcola il loop nella serie Digit Fibonacci che inizia con quelle due cifre. (Si sono certamente permesso di prendere in considerazione gli interi fuori di questo intervallo, ma non è obbligatorio.) Se dato un ingresso a una cifra, il codice dovrebbe interpretarlo per indicare l'inizio della serie 0,n.
Tutti i numeri nel loop che sono a due cifre devono essere emessi come due cifre. Quindi, per esempio, il ciclo per 1,1dovrebbe contenere 13, no 1,3.
L'output inizia con il primo numero nel loop. Quindi, in base alle restrizioni di cui sopra, il ciclo per 1,1inizia con 2, poiché 1,1e 11vengono conteggiati separatamente.
Ogni numero dell'output può essere separato da quello che vuoi, purché sia coerente. In tutti i miei esempi uso le virgole, ma sono consentiti spazi, interruzioni di riga, lettere casuali, ecc., Purché utilizzi sempre la stessa separazione. Quindi 2g3g5g8g13g4g7g11è un risultato legale per 1, ma 2j3g5i8s13m4g7sk11non lo è. È possibile utilizzare stringhe, elenchi, matrici, qualunque cosa, purché si disponga dei numeri corretti nell'ordine corretto separati da un separatore coerente. È consentito anche il bracketing dell'intero output (es. (5,9,14)O [5,9,14], ecc.).
Casi test:
1 -> 2,3,5,8,13,4,7,11
2 -> 2,3,5,8,13,4,7,11
3 -> 11,2,3,5,8,13,4,7
4 -> 3,5,8,13,4,7,11,2
5 -> 2,3,5,8,13,4,7,11
6 -> 3,5,8,13,4,7,11,2
7 -> 14,5,9
8 -> 13,4,7,11,2,3,5,8
9 -> 11,2,3,5,8,13,4,7
0 -> 0
14 -> 5,9,14
59 -> 5,9,14
Questo è code-golf , quindi vince il numero più basso di byte.
14e 59dare lo stesso risultato. Se 59viene interpretato come avvio 5,9e consenti ciò come parte del ciclo, allora sicuramente 14dovrebbe essere l'inizio del suo ciclo?
0,1,1,2,3,5,8,13,4,7,11,2,3. La prima volta che il loop si ripete è al secondo 2.
1,4,5,9,14,5e 5,9,14,5,9. Entrambi si ripetono a partire dal secondo 5. Come ho detto prima, solo l'input è suddiviso; i numeri successivi tengono insieme le cifre nella sequenza.