Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Programm schreiben: Zahl (n) eingeben, 1+1/n+2/n+3/n+....+n/n
Ich bin wirklich ein absoluter Anfänger und habe mich gerade hier erst angemeldet um mir Hilfe für mein Problem zu suchen.
Im Anhang befindet sich die Aufgabe, die ich bearbeiten muss (+ die Ausgabe, die ich mit meinem Code erhalte)
Meinen Ansatz könnt ihr im Verlauf auch entnehmen, jedoch frage ich mich, wie ich meine Ergebnisse summieren kann.
Ich habe als Lösung die einzelnen Werte einzeln ausgegeben, anstatt die einzelnen Werte summiert als eine Zahl ausgegeben wie in der Aufgabe verlangt.
Bekomme ich es irgendwie hin die Schleife die ich aufgebaut habe, mit einer Summenbildung zu verbinden? Dass das Programm sich bei jedem durchlaufen der Schleife das aktuelle Ergebnis merkt und dieses mit dem Ergebnis des nächsten Schleifendurchlaufs addiert?
Lösungsansätze bitte verständlich für einen noch fachfremden erklären.
Ich danke euch!
Mein Versuch:
Java:
package übung5;
public class scanner {
public static void main(String[] args) {
java.util.Scanner eingabe = new java.util.Scanner(System.in);
System.out.println("Bitte Geben sie ihre Zahl ein ");
int n = eingabe.nextInt();
double zähler = 1;
double hochzahl=1;
double Ergebnis;
while (hochzahl<=n)
{ Ergebnis = (hochzahl/n--);
System.out.println("Ergebnis:" + Ergebnis);
}
}
}
Ich bekomme auf meinem Wege quasi die einzelnen richtigen Bruchergebnisse zwar raus, jedoch als einzelne Ausgabe und nicht wie in der Aufgabe gefordert addiert zu einem Gesamtwert. Gibt es einfachen Weg, mein Programm so beizubehalten und meine Ausgaben zu addieren? Ich hoffe meine Fragestellung ist klar
package übung5;
public class scanner {
public static void main(String[] args) {
java.util.Scanner eingabe = new java.util.Scanner(System.in);
System.out.println("Bitte Geben sie ihre Zahl ein ");
int n = eingabe.nextInt();
double zähler = 1;
double hochzahl=1;
double Ergebnis;
double gesamtergebnis = 0.0;
while (hochzahl<=n)
{ Ergebnis =(hochzahl/n--);
gesamtergebnis += Ergebnis;
System.out.println("Ergebnis:" + Ergebnis);
}
}
}
Es gibt da einen Trick um das genauer zu rechnen aber iwas habe ich vergessen:
Java:
public static double a(int n) {
double b = 1;
for (int i = 2; i <= n; i++) {
b += 1.0 / i;
}
return b;
}
public static double b(int n) {
long b = n * 2;
for (int i = 2; i <= n; i++) {
b += n * 2 / i;
}
return (double) b / (n * 2);
}
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(a(i));
System.out.println(b(i));
}
}
Frage: Die Weitere Aufgabestellung lautet:
"Wenn Ihr Programm fehlerfrei läuft, erweitern Sie dieses so, dass das Programm immer wieder nachfragt, ob die Summe noch einmal für eine neue n-Eingabe berechnet werden soll."
Das soll ich mit Stringvergleichen und den Equal Befehlen machen. Ich komme einfach auf keine Lösung oder Ansatz :/
Java:
package übung5;
public class scanner {
public static void main(String[] args) {
java.util.Scanner eingabe = new java.util.Scanner(System.in);
System.out.println("Bitte Geben sie ihre Zahl ein ");
int n = eingabe.nextInt();
double hochzahl=1;
double Ergebnis;
double gesamtergebnis = 0.0;
while (hochzahl<=n)
{ Ergebnis =(hochzahl/n--);
gesamtergebnis = gesamtergebnis + Ergebnis;
System.out.println("Ergebnis:" + Ergebnis);
}
System.out.println("Gesamtergebnis" + gesamtergebnis);
{
}
}
}