2.1 toString()

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

2.1 toString()
Hallo, hat jemand eine Idee fuer die Methode toString()? Es soll ja ein BigLong-Feld in Dezimal umgerechnet werden und dann als String ausgegeben werden.

Mathematisch rechnet man das ja so:

a[7] · (2^31)^7 + a[6] · (2^31)^6 + . . . + a[2] · (2^31)^2 + a[1] · 2^31 + a[0]

Nun kommt man ja offensichtlich nicht darum rum, das ganze in Teilergebnissen auszurechnen, da man sonst in einen Overflow kommt.

Das Problem ist aber, dass zB

Teilergebnis = a[7] · (2^31)^7

Auswirkungen auf alle Digits einer Dezimalzahl haette, also, zumindet meiner Erkenntnis nach, ausgerechnet werden muss - was widerum nicht geht wegen Overflow.

Uebersehe ich hier was? Mir faellt wirklich kein Alogrithmus ein, das ganze auszurechnen.


Update: Loesung, die leider wegen Timeout fehlschlaegt:

  • Schreibe eine Methode zur String-Additon im Dezimalsystem.

  • Baue Multiplikation aus Addition mit einer Schleife.

  • Baue Exponentialfunktion aus verschachtelten Schleifen (hier hat man anfangs 7 verschachtelte Schleifen, was leider wegen Timeout fehlschlaegt)

  • Mathematische Formel damit umsetzen und String ausgeben