Tarefa
Encontre o conjunto de números de modo que a representação binária contenha duas ou mais execuções 1
separadas por pelo menos uma 0
.
Por exemplo, para os números com 4 bits:
0 0000 (no ones)
1 0001 (only one run)
2 0010 (only one run)
3 0011 (only one run)
4 0100 (only one run)
5 0101 Valid
6 0110 (only one run)
7 0111 (only one run)
8 1000 (only one run)
9 1001 Valid
10 1010 Valid
11 1011 Valid
12 1100 (only one run)
13 1101 Valid
14 1110 (only one run)
15 1111 (only one run)
Entrada
Um número inteiro fornecido ao aplicativo por meio de alguma entrada no intervalo 3 .. 32
. Isso representa o número máximo de bits a serem contados.
A entrada de n
indica que os números precisam ser examinados.0 .. 2n-1
Saída
Uma lista delimitada (à sua escolha) de todos os números que atendem aos critérios. Os números devem ser apresentados em ordem numérica. Um delimitador à direita extra é aceitável. Os gabinetes de estrutura de dados (por exemplo, []
e similares) também são aceitáveis.
Exemplo
Input: 3
Output: 5
Input: 4
Output: 5, 9, 10, 11, 13
Input: 5
Output: 5, 9, 10, 11, 13, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 29
Isso é código-golfe - a resposta com a menor quantidade de bytes ganha.
\n
delimitando e colocando um \n
na última linha, o ,
delimitado com um ,
final também deve ser aceitável. Atualizada.
[1, 2, 3]
?