Le défi
Étant donné 3 nombres X
, Y
et Z
en base B
, trouvez un B
as dans lequel l'addition de X
et Y
donne Z
. Les intrants x = 20
, Y = 12
et Z = 32
pourraient céder 5
car 20 + 12 = 32
en base 5.
- Vous pouvez supposer qu'il y aura toujours une base dans laquelle l'addition est correcte (il y a des cas où aucune base n'existe, grâce à @ MasonWheeler et @ Not that Charles pour quelques exemples).
- La base la plus basse possible est 1. Vous pouvez utiliser 1 ou 0 comme chiffres en unaire, mais vous ne pouvez pas les mélanger.
E / S
- Les chiffres des nombres saisis seront des entiers non négatifs.
- Vous pouvez supposer que les numéros d'entrée contiennent des zéros en tête, donc ils ont une longueur spécifique (ou tout de même).
- Vous pouvez prendre les chiffres dans le format le plus pratique, tant qu'il n'est pas prétraité. Cela comprend le format général des trois numéros d'entrée et le format des chiffres de chacun de ces numéros. Veuillez indiquer clairement le format que vous utilisez.
- S'il existe plusieurs bases possibles, vous pouvez générer toutes ou une seule d'entre elles.
- Vous pouvez supposer que la base et les numéros d'entrée seront dans les limites numériques de votre langue.
Règles
- Fonction ou programme complet autorisé.
- Règles par défaut pour les entrées / sorties.
- Des échappatoires standard s'appliquent.
- Il s'agit de code-golf , donc le nombre d'octets le plus bas l'emporte. Tiebreaker est une soumission antérieure.
Cas de test
Le format d'entrée est ici une liste d'entiers pour représenter chaque nombre. Les trois listes sont séparées par des virgules.
Notez qu'il existe parfois plusieurs bases possibles. Une seule solution (aléatoire) est sortie ici.
[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
Vous pouvez générer des cas de test supplémentaires avec ce programme Pyth . Entrez une base sur la première ligne et les valeurs décimales pour X
et Y
sur les deux lignes suivantes.
Vous pouvez également utiliser ce programme Pyth pour créer plusieurs cas de test à la fois en utilisant des valeurs aléatoires. Entrez simplement la quantité souhaitée de cas de test dans l'entrée.
Codage heureux!