Instruções
O problema de Josephus
O problema de Josephus é um desafio de matemática com uma descrição macabra: $n$ prisoneiros estão de pé, em círculo, sequencialmente numerados de $0$ a $n-1$.
Um carrasco caminha pelo círculo, começando pelo prisioneiro $0$, removendo cada $k$-ésimo prisioneiro e matando-o.
À medida que o processo avança, o círculo torna-se cada vez menor, até ficar apenas um prisioneiro, que é depois libertado.
Por exemplo, se houver $n=5$ prisioneiros e $k=2$, a ordem em que os prisioneiros são mortos (vamos chamá-la de "sequência de morte") será 1, 3, 0 e 4. O sobrevivente, então, será o nº 2.
Dado qualquer $n, sendo k > 0$, descubra qual prisioneiro será o sobrevivente ao final.
Em um incidente deste tipo, havia 41 prisoneiros e o 3<sup>o</sup> prisioneiro na sequência era morto ($k=3$).
Entre eles, havia um homem inteligente, chamado Josephus, que desvendou o problema, ficou na posição do sobrevivente e viveu para contar a história.
Qual era o número dele?
O que fazer:
Escreva uma função que recebe o número inicial de prisioneiros e
Critérios de Aceitação:
k como parâmetros, devolvendo o número do prisioneiro que sobrevive.Critérios de Aceitação:
Testes:
- `josephus` deve ser uma função.
- `josephus(30,3)` deve retornar um número.
- `josephus(30,3)` deve retornar `28`.
- `josephus(30,5)` deve retornar `2`.
- `josephus(20,2)` deve retornar `8`.
- `josephus(17,6)` deve retornar `1`.
- `josephus(29,4)` deve retornar `1`.
Console