Abend an alle,
habe als Übung für die kommende Klausur folgende Aufgabenstellung:
Gegeben sei folgende Formel:
f(n) = die summe von i=1 bis n für: (i/(i+1))
mit n∈ℤ
Implementieren Sie diese Formel einmal rekursiv und einmal iterativ. Gehen Sie davon
aus, dass die Werte von n kleiner als zwei Milliarden sind und für die Genauigkeit von f(n)
mindestens 45 Binärstellen nach dem Komma gefordert werden. Wählen Sie die
Datentypen sinnvoll und schreiben Sie ein Hauptprogramm, welches das Ergebnis von
f(19) mit beiden Varianten ausrechnet und die Ergebnisse ausgibt.
-Meine erste frage wäre nun ,ob es so stimmt(rein rechnerisch gesehen)?
-Wie krieg ich es auf 45 nachkommastellen hin?
-Wie könnt ich es rekursiv machen, habe da keinerlei ansatz.
Mein code wäre jetzt mal nur in der main zu finden und würde so aussehen:
habe als Übung für die kommende Klausur folgende Aufgabenstellung:
Gegeben sei folgende Formel:
f(n) = die summe von i=1 bis n für: (i/(i+1))
mit n∈ℤ
Implementieren Sie diese Formel einmal rekursiv und einmal iterativ. Gehen Sie davon
aus, dass die Werte von n kleiner als zwei Milliarden sind und für die Genauigkeit von f(n)
mindestens 45 Binärstellen nach dem Komma gefordert werden. Wählen Sie die
Datentypen sinnvoll und schreiben Sie ein Hauptprogramm, welches das Ergebnis von
f(19) mit beiden Varianten ausrechnet und die Ergebnisse ausgibt.
-Meine erste frage wäre nun ,ob es so stimmt(rein rechnerisch gesehen)?
-Wie krieg ich es auf 45 nachkommastellen hin?
-Wie könnt ich es rekursiv machen, habe da keinerlei ansatz.
Mein code wäre jetzt mal nur in der main zu finden und würde so aussehen:
Java:
public static void main(String []args){
Scanner sc = new Scanner(System.in);
System.out.println("Bitte geben sie eine Zahl ein");
int n = sc.nextInt();
double summe = 0;
for (double i = 1; i<=n; i++){
summe += (i/(i+1));
}
System.out.println("Ergebnis = " + summe);
}
}