Die Herausforderung
In Anbetracht 3 Zahlen X, Yund Zin der Basis B, einen findet Base , in dem die Zugabe Xund YAusbeuten Z. Die Eingänge x = 20, Y = 12und Z = 32könnten ergeben , 5weil 20 + 12 = 32in Basis 5.
- Sie können davon ausgehen, dass es immer eine Basis gibt, in der die Addition korrekt ist (es gibt Fälle, in denen keine Basis existiert, dank @ MasonWheeler und @ Not that Charles für einige Beispiele dafür).
- Die niedrigstmögliche Basis ist 1. Sie können Einsen oder Nullen als Ziffern in unary verwenden, aber Sie dürfen diese nicht mischen.
I / O
- Die Ziffern der eingegebenen Zahlen sind nicht negative ganze Zahlen.
- Sie können davon ausgehen, dass die Eingabenummern führende Nullen enthalten, also eine bestimmte (oder alle gleichen) Länge haben.
- Sie können die Zahlen im bequemsten Format verwenden, sofern sie nicht vorverarbeitet wurden. Dies schließt das Gesamtformat der drei eingegebenen Zahlen und das Format der Ziffern jeder dieser Zahlen ein. Bitte machen Sie deutlich, welches Format Sie verwenden.
- Wenn es mehrere mögliche Basen gibt, können Sie alle oder nur eine davon ausgeben.
- Sie können davon ausgehen, dass die Basis- und die Eingabenummer innerhalb der numerischen Grenzen Ihrer Sprache liegen.
Regeln
- Funktion oder Vollprogramm erlaubt.
- Standardregeln für die Eingabe / Ausgabe.
- Es gelten Standardlücken .
- Dies ist Code-Golf , also gewinnt die niedrigste Byte-Anzahl. Tiebreaker ist eine frühere Vorlage.
Testfälle
Das Eingabeformat ist hier eine Liste von ganzen Zahlen, die für jede Zahl stehen. Die drei Listen sind durch Kommas getrennt.
Beachten Sie, dass manchmal mehrere Basen möglich sind. Hier wird nur eine (zufällige) Lösung ausgegeben.
[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], [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, 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
Mit diesem Pyth-Programm können Sie zusätzliche Testfälle generieren . Geben Sie eine Basis in der ersten Zeile und die Dezimalwerte für Xund Yin den folgenden zwei Zeilen ein.
Sie können mit diesem Pyth-Programm auch mehrere Testfälle gleichzeitig erstellen, indem Sie zufällige Werte verwenden. Geben Sie einfach die gewünschte Anzahl von Testfällen in die Eingabe ein.
Viel Spaß beim Codieren!