Problem 6: Summe der Quadrat-Differenzen

Gesucht ist die Differenz zwischen der Summe der Quadrate und dem Quadrat der Summe aller Zahlen zwischen 1 und 100! [das englische Original]

Diesem Problem habe ich mich erst einmal auf mathematischem Wege genähert. Wenn man sich beide Summen anschaut, stellt man fest, dass sich in deren Differenz einige Terme zu 0 addieren. Ich habe dies am Bespiel der Zahlen von 1 bis 3 in diesem Bild dargestellt:

Herleitung am Beispiel der Zahlen bis 3
Herleitung am Beispiel der Zahlen bis 3

Man kann leicht erkennen, dass die Berechnung der Quadrate nicht notwendig ist. Dadurch reichen zwei in einander verschachtelte Schleifen, um die Produkte der äußeren und inneren Laufvariablen zu addieren. Sind beide Variablen gleich, wird deren Produkt ignoriert:

   public String solve() {

      int max = 100, sum = 0;

      for( int i = 1; i <= max; i++ ) {
         for( int j = 1; j <= max; j++ ) {
            if( i != j ) { // ignore squares
               sum += ( i * j );
            }
         }
      }

      return IO.i2s( sum );
   }

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

<< Problem 5 Übersicht Problem 7 >>

Kommentar verfassen

Willkommen in Nico Dannebergs Netzwerk

%d Bloggern gefällt das: