Instruções
Representação do número de Zeckendorf
Assim como os números podem ser representados em uma notação posicional como somas de múltiplos das potências de dez (decimal) ou de dois (binário), todos os números inteiros positivos podem ser representados como a soma de um ou zero vezes os diferentes membros da série Fibonacci. Lembre-se de que os primeiros seis números de Fibonacci distintos são:
1, 2, 3, 5, 8, 13.
O número decimal onze pode ser escrito como 0*13 + 1*8 + 0*5 + 1*3 + 0*2 + 0*1 ou 010100 na notação posicional, onde as colunas representam a multiplicação por um determinado membro da sequência. Os zeros à esquerda são removidos para que 11 decimal se torne 10100. 10100 não é a única maneira de fazer 11 a partir dos números de Fibonacci, no entanto 0*13 + 1*8 + 0*5 + 0*3 + 1*2 + 1*1 ou 010011 também representariam o decimal 11. Para um verdadeiro número de Zeckendorf há a restrição adicional de que *nenhum dois números consecutivos de Fibonacci podem ser usados* o que leva à solução única mencionada anteriormente.
O que fazer:
Escreva uma função que gere e retorne a representação do número de Zeckendorf de
Critérios de Aceitação:
n.Critérios de Aceitação:
Testes:
- `zeckendorf` deve ser uma função.
- `zeckendorf(0)` deve retornar `0`.
- `zeckendorf(1)` deve retornar `1`.
- `zeckendorf(2)` deve retornar `10`.
- `zeckendorf(3)` deve retornar `100`.
- `zeckendorf(4)` deve retornar `101`.
- `zeckendorf(5)` deve retornar `1000`.
- `zeckendorf(6)` deve retornar `1001`.
- `zeckendorf(7)` deve retornar `1010`.
- `zeckendorf(8)` deve retornar `10000`.
- `zeckendorf(9)` deve retornar `10001`.
- `zeckendorf(10)` deve retornar `10010`.
- `zeckendorf(11)` deve retornar `10100`.
- `zeckendorf(12)` deve retornar `10101`.
- `zeckendorf(13)` deve retornar `100000`.
- `zeckendorf(14)` deve retornar `100001`.
- `zeckendorf(15)` deve retornar `100010`.
- `zeckendorf(16)` deve retornar `100100`.
- `zeckendorf(17)` deve retornar `100101`.
- `zeckendorf(18)` deve retornar `101000`.
- `zeckendorf(19)` deve retornar `101001`.
- `zeckendorf(20)` deve retornar `101010`.
Console