Harmonische Rekursive Folge

Gojiita

Neues Mitglied
Guten Tag und zwar hänge ich etwas an einer Aufgabe und hoffe, dass mir hier geholfen werden kann.

und zwar möchte ich die Harmonische Folge Rekursiv wiedergeben. Leider kommt bei mir immer nur die 1.0 raus, was ist da los? Iterativ habe ich es schon geschafft.

Java:
class HarmRek{

  static double harnRek(int n){
  if (n<=1){
  return 1;
  }
  else{
  return harnRek((n-1)+1/n);
  }

  }

  public static void main (String[]args){
  System.out.println(harnRek(100));
  }

}
 
Zuletzt bearbeitet von einem Moderator:
Java:
class HarmRek{

static double harnRek(int n){
if (n<=1){
return 1;
}
else{
return harnRek((n-1)+1.0/n);
}

}

public static void main (String[]args){
System.out.println(harnRek(100));
}

}

Habs dir korrigiert. Also wenn du Die Summe aller Harmonischen Folgeelemente von a1 bis a 100 möchtest.
 
Zuletzt bearbeitet von einem Moderator:
class HarmRek{

static double harnRek(int n){
if (n<=1){
return 1;
}
else{
return harnRek((n-1)+1.0/n);
}

}

public static void main (String[]args){
System.out.println(harnRek(100));
}

}

Habs dir korrigiert. Also wenn du Die Summe aller Harmonischen Folgeelemente von a1 bis a 100 möchtest.


Vielen Dank. Leider klappt es immer noch nicht.
Wenn ich deine Lösung mit dem 1.0 nehme, kompiliert er nicht und beschwert sich, dass es nicht an einem double angewandt werden kann.

Ansonsten spuckt er immernoch nur die 1.0 aus anstelle der 5.18...
 
Sei dir erst mal im Klaren darüber, was du überhaupt haben willst; denn deine Postings widersprechen sich inhaltlich gegenseitig.

Zum Problem: Deine Methode wird niemals etwas anderes als 1.0 zurückgeben. Schau sie dir doch nochmal genau an, das solltest du sofort erkennen.

Ich vermute einfach mal, du willst auf das hier hinaus:
Ersetze
Java:
else{
    return harnRek((n-1)+1/n);
}
durch
Java:
else{
    return 1.0/n + harnRek(n-1);
}

Damit gibt deine Methode harnRek(n) den Wert der entsprechenden n-ten Partialsumme der harmonischen Reihe zurück.
 

Zurück
Oben