O desafio
Dados 3 números X
, Y
e Z
na base B
, encontre um número B
no qual a adição X
e o Y
rendimento Z
. As entradas x = 20
, Y = 12
e Z = 32
poderia originar 5
porque 20 + 12 = 32
em 5 de base.
- Você pode supor que sempre haverá uma base na qual a adição está correta (há casos em que não existe uma base, graças a @ MasonWheeler e @ Não a Charles, por alguns exemplos disso).
- A base mais baixa possível é 1. Você pode usar 1s ou 0s como dígitos em unário, mas não pode misturá-los.
I / O
- Os dígitos dos números de entrada serão números inteiros não negativos.
- Você pode supor que os números de entrada contenham zeros à esquerda, de modo que tenham um comprimento específico (ou igual).
- Você pode pegar os números no formato mais conveniente, desde que não seja pré-processado. Isso inclui o formato geral dos três números de entrada e o formato dos dígitos de cada um desses números. Por favor, deixe claro qual formato você usa.
- Se houver várias bases possíveis, você poderá produzir todas ou apenas uma delas.
- Você pode assumir que os números base e de entrada estarão dentro dos limites numéricos do seu idioma.
Regras
- Função ou programa completo permitido.
- Regras padrão para entrada / saída.
- Aplicam-se brechas padrão .
- Isso é código-golfe , portanto, a menor contagem de bytes vence. O desempate é uma submissão anterior.
Casos de teste
O formato de entrada aqui é uma lista de números inteiros para representar cada número. As três listas são separadas por vírgulas.
Observe que às vezes existem várias bases possíveis. Somente uma solução (aleatória) é produzida aqui.
[12, 103], [4, 101], [16, 204] -> 349 [4, 21, 25], [5, 1, 20], [9, 23, 17] -> 28 [16, 11], [25, 94], [41, 105] -> 147 [2, 140], [21, 183], [24, 100] -> 223 [8, 157], [1, 28], [9, 185] -> 227 [2, 158], [88], [3, 12] -> 234 [8, 199], [1, 34], [9, 233] -> 408 [3, 247], [7, 438], [11, 221] -> 464 [3, 122], [3, 2], [6, 124] -> 480 [6, 328], [3, 31], [9, 359] -> 465 [2, 1, 0, 0, 0, 0], [1, 2, 0, 0, 1, 0, 1, 0], [1, 2, 2, 1, 1, 0, 1, 0] - > 3 [16, 105], [16, 120], [33, 84] -> 141 [15, 60], [9, 30], [24, 90] -> 268 [2, 0], [1, 2], [3, 2] -> 5 [1, 3, 3, 7], [1, 2, 3], [1, 4, 6, 0] -> 10 [0], [1, 12, 8], [1, 12, 8] -> 16 [1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1], [1, 0, 0, 1, 0, 1, 1, 1, 0, 0 , 1], [1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0] -> 2 [1], [1], [1,1] -> 1
Você pode gerar casos de teste adicionais com este programa Pyth . Insira uma base na primeira linha e os valores decimais para X
e Y
nas duas linhas a seguir.
Além disso, você pode usar este programa Pyth para criar vários casos de teste de uma vez usando valores aleatórios. Basta digitar a quantidade desejada de casos de teste na entrada.
Feliz codificação!