Como você provavelmente sabe, um número de Fibonacci é aquele que é a soma dos dois números anteriores da série.
Um Fibonacci Digit ™ é aquele que é a soma dos dois dígitos anteriores .
Por exemplo, para o início da série 1,1, a série seria 1,1,2,3,5,8,13,4,7,11,2...A alteração ocorre após o 13, onde, em vez de adicionar 8+13, você adiciona 1+3. A série faz um loop no final, onde 4+7=11e 1+1=2, o mesmo que a série começa.
Para outro exemplo, as séries começando 2,2: 2,2,4,6,10,1,1,2,3,5,8,13,4,7,11,2,3.... Este começa de forma exclusiva, mas quando os dígitos somam 10, você termina com 1+0=1, 0+1=1, e a série continua - e faz um loop - da mesma forma que a 1,1série.
O desafio
Dada uma entrada inteira 0≤n≤99, calcule o loop na série Fibonacci Digit começando com esses dois dígitos. (Você certamente pode considerar números inteiros fora desse intervalo, mas isso não é obrigatório.) Se for fornecida uma entrada de um dígito, seu código deve interpretá-la para indicar o início da série 0,n.
Todos os números no loop com dois dígitos devem ser emitidos como dois dígitos. Assim, por exemplo, o loop para 1,1conteria 13, não 1,3.
A saída começa com o primeiro número no loop. Portanto, com base nas restrições acima, o loop para 1,1começa com 2, desde 1,1e 11é contado separadamente.
Cada número da saída pode ser separado pelo que você quiser, desde que seja consistente. Em todos os meus exemplos, uso vírgulas, mas espaços, quebras de linha, letras aleatórias etc. são permitidos, desde que você sempre use a mesma separação. Assim 2g3g5g8g13g4g7g11é uma saída legal para 1, mas 2j3g5i8s13m4g7sk11não é. Você pode usar cadeias, listas, matrizes, o que for, desde que você tenha os números corretos na ordem correta separados por um separador consistente. O bracketing de toda a saída também é permitido (ex. (5,9,14)Ou [5,9,14]etc.).
Casos de teste:
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
Isso é código-golfe , então o menor número de bytes vence.
14e 59dou o mesmo resultado. Se 59é interpretado como iniciando 5,9e permitindo que, como parte do loop, então certamente 14deve ser o início do loop?
0,1,1,2,3,5,8,13,4,7,11,2,3. A primeira vez que o loop se repete é na segunda 2.
1,4,5,9,14,5e 5,9,14,5,9. Ambos repetem começando com o segundo 5. Como eu disse anteriormente, apenas a entrada é dividida; os números posteriores mantêm seus dígitos juntos na sequência.