Wir werden Division für beliebig große ganze Zahlen implementieren.
Das ist Code-Golf .
Die Aufgabe besteht darin, ein Programm oder eine Funktion zu schreiben, die Ganzzahlen mit willkürlicher Genauigkeit und Division darauf implementiert.
Beachten Sie, dass viele Dinge, die dies sehr einfach machen könnten, nicht zulässig sind . Lesen Sie die technischen Daten sorgfältig durch .
Eingang
Sie erhalten 2 Dinge als Eingabe:
- Nennen Sie es eine Zeichenfolge mit 10 Stellen zur Basis
n. - eine andere Zeichenfolge mit 10 Stellen zur Basis, nennen Sie es
m
Nehmen n>m>0Sie an, dass Sie niemals aufgefordert werden, durch Null zu teilen .
Ausgabe
Sie werden ausgegeben zwei Zahlen, Qund Rwo m * Q + R = n und 0 <= R <m
Spezifikationen
Ihre Übermittlung sollte für beliebig große Ganzzahlen funktionieren (begrenzt durch den verfügbaren Speicher).
Sie dürfen keine externen Bibliotheken verwenden. Wenn Sie eine externe Bibliothek für I / O benötigen, können Sie diese als integrierte Bibliothek behandeln. (Betrachten von Dingen wie iostream usw.).
Wenn Ihre Sprache über eine integrierte Funktion verfügt, die dies trivialisiert, können Sie sie möglicherweise nicht verwenden. Dies umfasst (ohne darauf beschränkt zu sein) integrierte Typen, die Ganzzahlen mit beliebiger Genauigkeit verarbeiten können.
Wenn eine Sprache aus irgendeinem Grund standardmäßig Ganzzahlen mit willkürlicher Genauigkeit verwendet, kann diese Funktionalität nicht zur Darstellung von Ganzzahlen verwendet werden, die normalerweise nicht in 64-Bit-Formaten gespeichert werden konnten.
Eingang und Ausgang MÜSSEN in der Basis 10 sein . Es spielt keine Rolle, wie Sie die Zahlen im Speicher ablegen oder wie Sie mit ihnen rechnen, aber I / O wird die Basis 10 sein.
Sie haben 15 Sekunden Zeit, um ein Ergebnis auszugeben. Dies soll eine iterierte Subtraktion verhindern.
Das Ziel hierbei ist die Implementierung von Ganzzahlen mit willkürlicher Genauigkeit. Wenn Sie aus irgendeinem Grund in der Lage sind, die Herausforderungsspezifikationen einzuhalten und dies erfolgreich zu tun, ohne sie zu implementieren, dann klingt das gut für Sie.
Testfälle
- In diesem Fall sind die Eingänge 39! und 30!
Eingang
n = 20397882081197443358640281739902897356800000000
m = 265252859812191058636308480000000
Ausgabe
Q = 76899763100160
R = 0
nist die Summe aller Fakultäten bis zu 50 plus 1.mist verkettete Zahlen bis zu 20.
Eingang
n = 31035053229546199656252032972759319953190362094566672920420940313
m = 1234567891011121314151617181920
Ausgabe
q = 25138393324103249083146424239449429
r = 62459510197626865203087816633
nist 205! + 200 !.mist, wie viele Tränen PeterTaylor mich vergossen hat, indem er Dinge, die ich im Sandkasten postiere, auseinandergerissen hat.
Eingang
n = 271841734957981007420619769446411009306983931324177095509044302452019682761900886307931759877838550251114468516268739270368160832305944024022562873534438165159941045492295721222833276717171713647977188671055774220331117951120982666270758190446133158400369433755555593913760141099290463039666313245735358982466993720002701605636609796997120000000000000000000000000000000000000000000000000
m = 247
Ausgabe
q = 1100573825740813795225181252819477770473619155158611722708681386445423816849801159141424129060075102231232666057768175183676764503262931271346408394876267875141461722640873365274628650676808557279259873162169126398101692109801549256156915750794061370041981513180387019893765753438422927286098434193260562682052606153857091520795991080960000000000000000000000000000000000000000000000000
r = 0;
Ich werde wahrscheinlich irgendwann weitere Testfälle hinzufügen.