Problem 13: Große Summe

Gesucht werden die ersten 10 Stellen der Summe von 100 50-stelligen Zahlen! [das englisch Original]

Die eigentliche Herausforderung bei diesem Problem besteht darin, dass in kaum einer Programmiersprache 50-stellige Zahlen von einem primitiven Datentypen unterstützt werden. In Java gibt es zwar eine vorgefertigte Klasse für übergroße Zahlen, aber ich wollte so eine Klasse schon immer einmal selber schreiben.

Gesagt, getan: Objekte meiner Klasse LargeNumber speichern ihre Ziffern in einem Array und können somit beliebig groß werden. Für das aktuelle Problem habe ich nur eine Methode zum Addieren implementiert. Mit Hilfe dieser Erweiterung ist die Lösung des Problem sehr einfach:

public String solve() {
   LargeNumber sum = new LargeNumber();

   for( LargeNumber cur : numbers )
      sum = sum.add( cur );

   return sum.toString().substring( 0, 10 );
}

Den vollständigen Quellcode der Klasse für die Lösung des Problems 13 kann man sich hier anschauen!

<< Problem 12 Übersicht Problem 14 >>

Kommentar verfassen

Willkommen in Nico Dannebergs Netzwerk

%d Bloggern gefällt das: