A mina de sal polonesa mais antiga , localizada em Bochnia *, foi iniciada no ano de 1248, o que podemos considerar um número mágico . Podemos ver que é igual a 4 dígitos da seqüência de exponenciações: .
Como a data é na verdade 4 dígitos da sequência, poderíamos torná-la mais longa. Poderíamos repetir o processo até alcançarmos o infinito. A sequência ficaria assim, se a limitarmos ao número2048
124816326412825651210242048
Para torná-lo um pouco melhor, podemos separar os números:
1|2|4|8|16|32|64|128|256|512|1024|2048
Vamos tentar uma sequência mais longa e personalizada que a data. Digamos que queremos que ele tenha 5 dígitos - há mais de uma possibilidade:
24816
81632
64128
Ou 3 dígitos:
124
248
816
Também podemos adicionar os números de três dígitos, mas digamos que uma sequência deve ter pelo menos dois números .
* Não há informações sobre isso na Wikipedia em inglês. Se você digitar a versão polonesa - então existe. Se você visitar a mina, os trabalhadores também lhe dirão que tudo começou em 1248.
O desafio
Crie uma sequência de exponenciação como nos exemplos acima, com 2 como base.
Dado um número do intervalo 2-27, imprima todas as partes possíveis da sequência (a 2048, uma ou mais, se desejar) com uma quantidade de dígitos igual à entrada. Você não pode cortar um número, portanto, a saída 481
é inválida, porque 16 é cortado pela metade.
Regras:
- As brechas padrão são proibidas.
- Você pode assumir que a entrada é um número dentro do intervalo.
- Seu programa pode aceitar entradas maiores que o intervalo (28+), mas isso não aumenta / diminui a pontuação.
- Os espaços na saída são ignorados. Você pode imprimir como
124
ou gostar4 8 16
. - Possibilidades diferentes devem ser separadas por qualquer caractere da lista:
,./|
ou um avanço de linha. - Você pode imprimir como uma matriz.
- Toda possibilidade deve incluir pelo menos 2 números diferentes .
- Você deve saída de uma parte da seqüência, você não pode misturar números que não são próximas umas das outras, como:
14
. - A saída codificada permanentemente não é permitida, no entanto, você pode codificar uma sequência / número / matriz que contém a sequência completa.
- A entrada 27 deve retornar a sequência 2048 completa.
- Como já mencionado anteriormente, não corte números . Ex.
16
deve ficar16
- você não pode usar481
- você deve usar4816
. - Edição: Eu poderia ter dito algo errado lá; 2048 é o último número que seu programa deve suportar; você pode adicionar suporte para int maiores.
Casos de teste
Entrada: 2
12, 24, 48
Entrada: 3
124, 248, 816
Entrada: 4
1248, 4816, 1632, 3264
Entrada: 5
24816, 81632, 64128
Entrada: 27
124816326412825651210242048
E números posteriores ...
Se eu cometi algum erro em algum dos casos de teste, diga-me ou edite a pergunta.
Isso é código-golfe , então o código mais curto em bytes vence!