Introdução
A sequência de comutação é definida da seguinte forma:
Comece com npessoas em círculo ( 6neste exemplo).
1 2
6 3
5 4
A partir de pessoa 1, a pessoa que está à esquerda da pessoa "escolhida" é removida.
1
6 3
5 4
A pessoa removida pode "alternar" o método de remoção:
- Se a pessoa removida for par (o que é neste caso), a próxima pessoa removida estará à direita da próxima pessoa "escolhida".
- Se a pessoa removida for ímpar, a próxima pessoa removida estará à esquerda da próxima pessoa "escolhida".
A próxima pessoa escolhida também depende da pessoa removida anteriormente.
- Se a pessoa removida for par, a próxima pessoa escolhida estará à direita da pessoa escolhida anterior.
- Se a pessoa removida for estranha, veja acima, mas substitua "direita" por "esquerda".
Então a próxima pessoa escolhida é então 6.
Agora removemos a pessoa à direita de 6, que é 5:
1
6 3
4
Como 5é estranho, a pessoa removida está agora à esquerda. A nova pessoa escolhida é 1.
Agora removemos 3:
1
6
4
Continuamos esse processo, até termos 1 número - neste exemplo, o número final é 1. Então, portanto S(6) = 1.
Os primeiros números são:
n | S(n)
---------
1 | 1
2 | 1
3 | 3
4 | 1
5 | 5
6 | 1
7 | 3
8 | 6
9 | 5
10 | 6
11 | 9
Tarefa
Sua tarefa é criar um programa (ou uma função) que retorne S(n)(o nnúmero th na sequência de comutação) quando fornecido n, usando a menor quantidade de bytes.
Exemplos de entradas e saídas:
1 -> 1
10 -> 6
13 -> 13
Você está garantido para obter um número inteiro positivo.
Isso é código-golfe , então o código mais curto em bytes vence!
Nota: Não há sequência OEIS (o quê?), Para poupar o trabalho de pesquisar.
2nunca permanece, mas permanece 7?