Rekursive Summenberechnung

ILoveJava

Grünschnabel
Wäre das hier eine Rekursion? Habe es mal in Algorithmenschreibweise notiert.


integer berechneSumme(integer a){
integer summe;
summe = 1 + a;
a--;
berechneSumme();​
return summe;
}

Berechnet werden soll die Summe einer eingegeben Zahl bis 1, die an diese Methode übergeben wird.
 
Zuletzt bearbeitet:
Nein, das funktioniert so nicht.
Java:
// integer existiert außerdem nicht in Java, entweder Integer oder int
integer berechneSumme(integer a){
  integer summe;
  summe = 1 + a; // Summe wird mit jedem neuen Aufruf überschrieben
  a--;
  berechneSumme(); // berechneSumme erwartet einen Parameter
}

So geht's:
Java:
public int sum(int a){
  if( a <= 0 ) // Wir zählen nur positive Zahlen zusammen
    return 0;
  return sum(a, 0);
}
private int sum(int a, int sum){ // eigentliche rekursive Methode
  if( a <= 0 )
    return sum;
  sum += a; // a zur Summe zählen
  return sum(a-1, sum); // rekursiver Aufruf
}
 
Hi.

In diesem Fall braucht man keinen Aggregationsparameter.

Java:
int sum(int a) {
  if (a > 0) return a + sum(a - 1);
  else return 0;
}
 
Zurück