Entrada
Uma matriz não vazia de números inteiros positivos.
Tarefa
Converta cada número inteiro em binário, octal, decimal ou hexadecimal de forma que cada dígito ( 0 a F ) seja usado no máximo uma vez.
Resultado
A lista de bases que foram usadas para resolver o quebra-cabeça.
Exemplo detalhado
A saída esperada para [16, 17] é [octal, decimal] .
Aqui está o porquê:
- Não podemos simplesmente usar decimal para ambos os números, porque ambos contêm um 1 .
- 16 não pode ser convertido em binário, porque sua representação nesta base ( 10000 ) contém vários 0 's.
- 17 também não pode ser convertido em binário, porque sua representação nesta base ( 10001 ) contém vários 0 e vários 1 .
- 17 não pode ser convertido em hexadecimal, porque sua representação nesta base ( 11 ) consiste em dois 1 's.
Vamos considerar todas as possibilidades restantes:
+---------+---------+--------+ | oct(16) | dec(16) | hex(16)| | = 20 | = 16 | = 10 | +--------------+---------+---------+--------+ | oct(17) = 21 | 20,21 | 16,21 | 10,21 | | dec(17) = 17 | 20,17 | 16,17 | 10,17 | +--------------+---------+---------+--------+
A única solução possível é converter 16 em octal ( 20 ) e manter 17 em decimal ( 17 ). Dessa forma, os dígitos 0 , 1 , 2 e 7 são usados exatamente uma vez.
Esclarecimentos e regras
- A entrada é garantida para levar a uma solução única. Seu código não deve oferecer suporte a matrizes que oferecem várias soluções ou nenhuma solução.
- Você pode emitir as bases em qualquer formato razoável, como ["bin", "oct", "dec", "hex"] , ['b', 'o', 'd', 'h'] , "BODH " , [2,8,10,16] , [0,1,2,3] etc. Mas deve ser claramente explicado na sua resposta.
- A ordem das bases na saída deve corresponder à ordem dos números inteiros de entrada.
- Se isso ajudar, você pode assumir que a entrada é classificada da mais baixa para a mais alta ou da mais alta para a mais baixa.
- Isso é código-golfe , então a resposta mais curta em bytes vence!
Casos de teste
Você não precisa exibir os resultados da conversão listados abaixo. Eles são puramente informativos.
Input | Output | Conversion result
---------------------------------------+-----------------+------------------------
[ 119 ] | O | 167
[ 170 ] | D | 170
[ 64222 ] | H | FADE
[ 16, 17 ] | O/D | 20/17
[ 14, 64, 96 ] | H/H/D | E/40/96
[ 34, 37, 94 ] | O/D/H | 42/37/5E
[ 2, 68, 82 ] | B/D/H | 10/68/52
[ 22, 43, 96 ] | O/O/O | 26/53/140
[ 3639, 19086, 57162 ] | H/D/H | E37/19086/DF4A
[ 190, 229, 771 ] | O/H/O | 276/E5/1403
[ 2, 44, 69, 99 ] | B/H/H/H | 10/2C/45/63
[ 75, 207, 218, 357, 385 ] | H/H/H/D/O | 4B/CF/DA/357/601
[ 12, 28, 46, 78, 154, 188, 222, 240 ] | D/O/O/D/H/H/H/H | 12/34/56/78/9A/BC/DE/F0
A lista de entradas brutas está disponível aqui .