Introdução
Produza todos os números em uma base específica que apareceriam em uma versão adaptada do jogo dos sete.
Desafio
Sua tarefa é produzir todos os números em uma determinada base em um determinado intervalo, ignorando os que correspondem a determinadas condições.
Você receberá quatro entradas: base
elim
start
e end
. Os papéis das quatro variáveis são os seguintes:
base
especifica qual base estamos usando para as outras três variáveis e também para saída. Uma maneira de expressá-lo é usar um único caractere que seja '8', '9' ou uma letra maiúscula de 'A' a 'Z', usando 'A' para o sistema decimal e 'G' para o sistema hexadecimal. As bases que devem ser apoiadas são de 8 a 35 (inclusive). Esta é apenas a minha maneira sugerida de expressar obase
e vou usá-lo na seção Exemplo de entrada e saída , mas também é bom usar o seu próprio modo de expressá-lo. Por exemplo, você pode optar por formatarbase
como sua representação decimal usual.start
eend
são duas cadeias que especificam o intervalo de números a serem emitidos, expresso no dadobase
. Sebase
éG
estart
é10
eend
é1F
, você precisa produzir10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
, mas também precisa eliminá-los com base no queelim
é, a ser explicado em breve.elim
é um caractere único e deve ser um dígito válido no dadobase
. Todos os números que contêm o dígitoelim
ou múltiplos deelim
devem ser eliminados da lista para gerar a saída final.
No caso acima, se elim
for 7
, 17
precisará ser eliminado porque contém o dígito 7
. 15
e 1C
também precisam ser eliminados porque são múltiplos de 7
. Portanto, a saída final seria10 11 12 13 14 16 18 19 1A 1B 1D 1E 1F
Casos de teste
Input -> Output
G,7,10,1F -> 10 11 12 13 14 16 18 19 1A 1B 1D 1E 1F
A,3,1,100 -> 1 2 4 5 7 8 10 11 14 16 17 19 20 22 25 26 28 29 40 41 44 46 47 49 50 52 55 56 58 59 61 62 64 65 67 68 70 71 74 76 77 79 80 82 85 86 88 89 91 92 94 95 97 98 100
G,A,96,C0 -> 97 98 99 9B 9C 9D 9E 9F B0 B1 B2 B3 B5 B6 B7 B8 B9 BB BC BD BF C0
O terceiro caso de teste é adicionado após a postagem original. Todas as respostas postadas antes da edição foram testadas e passaram no terceiro teste.
Especificações
A entrada sempre será válida, portanto, não se preocupe com o tratamento de exceções.
Isso é código-golfe , o menor número de bytes vence.
Você pode receber e fornecer saída através de qualquer formulário padrão e pode escolher o formato.
Como sempre, as brechas padrão se aplicam aqui.
Isso é baseado na versão real do jogo dos setes .
Eu preciso
base
ter pelo menos 8 anos devido ao gosto pessoal. Só não quero ver o número de dígitos na sequência crescer muito rápido.
Placar
Snippet retirado desta pergunta . Execute o trecho para obter o placar.
start
, end
e elim
mais branda.
"G,7,10,1F"
entrada, uma abordagem totalmente flexível permitiria, por exemplo, [16,7,16,31]
como entrada e [[1,0],[1,1],[1,2],[1,3],[1,4],[1,6],[1,8],[1,9],[1,10],[1,11],[1,13],[1,14],[1,15]]
saída. (Observe que a primeira resposta assumiu que parte disso já havia sido permitida, já que é bastante padrão - mas depende totalmente de você).
base,elim,start,end
, 'A' para sistema decimal , 'G' para sistema hexadecimal ), tente formatar seus casos de teste de uma maneira fácil de use e considere usar o Sandbox para receber feedback antes de postar no site principal. No geral, este é um bom primeiro desafio!