Rekursive Form

konoha

Bekanntes Mitglied
Hallo ich soll das von mir bereits geschriebene Programm in eine rekursive Form überführen. Ich kann mir aber kein klares Bild davon machen. Ich habe kein Schimmer wie das gehen soll, so das programm umzuschreiben, dass die Methode sich mehrfach selbst aufruft und dennoch das gleiche ausgeben soll. Bitte helft mir.. :(

Java:
  public static double pi(){
    double nenner = 1.0;
    double zaehler = 1.0;
    double bruch = 0.0;

    while (nenner <= 1000){
    bruch = bruch + zaehler/(nenner*nenner);
    nenner = nenner+1;

    }
        return Math.sqrt(bruch * 6);


// Überführung in rekursive Form
public static double quadraticFractionSum(double counter){

}
 

Anhänge

  • a.png
    a.png
    32,8 KB · Aufrufe: 21

konoha

Bekanntes Mitglied
habs mal versucht. komme aber nicht weiter :(
Java:
   public static void main(String[]args){
   
    }
   
    public static double quadraticFractionSum(double counter){
    double bruch;
    int zaehler = 1;
   
   
    if(counter<=1000)
            bruch = bruch + zaehler/counter;
            return Math.sqrt(bruch * 6);
            else
            return quadraticFractionSum(counter - 1);
 

Flown

Administrator
Mitarbeiter
Warum denn so kompliziert?
Java:
public static double pi() {
   return Math.sqrt(quadraticFractionSum(1d) * 6d);
}

public static double quadraticFractionSum(double counter) {
   double frac = 1d / (counter * counter);
   return counter < 1e3 ? frac + quadraticFractionSum(counter + 1d) : frac;
}
 

konoha

Bekanntes Mitglied
Danke für deine lösung flown:)

Magst du mir bitte die letzte Zeile ausgiebig erklären? Da blicke ich nicht durch. Was bedeutet denn bitte 1e3 und der folgende fragezeicdn operator? Und dann frac +..... : frac?
 

Neue Themen


Oben