Summe aller Natürlichen Zahlen - Methode Prüfen

anarcho-anton

Neues Mitglied
Hallo,
Ich bin Absoluter Programmier+Java Neuling.
Da an der Uni gerade die Infovorlesungen grottenschlecht sind fühle ich mich auf die Übungsblätter wirklich schlecht vorbereitet und muss wohl eher autodidaktisch an die ganze Sache herangehen.

Nun zu meinem Problem:
ich soll eine Methode schreiben, die die Summe aller Natürlicher Zahlen von 1 bis n berechnet.
Es ist auch eine Lösung wiefolgt angegeben:

Java:
public class Summe
static int calcSum(int n){
int sum = 0;
for(int i = 1; i <= n; i++) {
sum = sum + i;
}
return sum;
}

Die Methode leuchtet mir im Großen und ganzen schon ein, den Sinn von (return sum;) verstehe ich aber nicht.
Nun soll ich diese Methode mithilfe einer main-Methode testen.
Ausgegeben hätte ich gerne etwas durch System.out.println("n: " + n + ", sum: " + calcSum(n));
Das ich auch noch i-wo "public static void main(String[] args){}" (was ja nunmal die main-methode ist) einfügen muss habe ich jetzt auch begriffen. Wo ich die beiden Zeilen aber nun sinnvoll einfüge Ergibt sich mir nicht. Ausserdem verstehe ich nicht wie ich hier für den parameter n eine Zahl einsetzen kann.
Als ich die Aufgabe zuerst selbst bearbeitet habe habe ich die mir Einleuchtende Methode
Java:
public class C {
	public static void main(String [] args)
	{
		int n = 5;
		{
		long sum = 0;
		
		for (int i =1; i <= n; i++) {sum = sum + i;}
		
		System.out.println("n: " + n + ", sum: " + sum);
}
}}
verfasst, die sogar funktioniert und wo ich einfach den parameter n verändern kann.
Ist diese methode i-wie schlecht oder wieso basteln die bei der Lösung so komplizierte Dinge mit ein?
Vielen Dank für Antworten!

Bei der Abgabe am Mittwoch werd ich auf jeden Fall durchfallen aber jetzt brauch ich erstmal einen Anpack an das ganze Thema..
 

XHelp

Top Contributor
Java:
public class Summe {
  static int calcSum(int n){
    int sum = 0;
    for(int i = 1; i <= n; i++) {
      sum = sum + i;
    }
    return sum;
  }
  public static void main(String[] args) {
    for (int i=1;i<20;i++) {
      System.out.println("n: " + i + ", sum: " + calcSum(i));
    }
  }
}

So ungefähr kannst du es machen.
Aber bevor du dich ins Programmieren stürzt, solltest du dir Grundlagen verschaffen. Es gibt genügend Anfänger-Bücher (z.B. Inselbuch).
P.S. Bei euch gibt es bestimmt auch Übungen und Tutorien zum Fach, wo man Fragen stellen kann (und wenn man etwas nicht versteht auch "muss")
 

aedu00

Mitglied
Was verwirrt dich denn an der Musterlösung?

Mit return wird die Methode beendet und "sum" zurückgegeben. Die Methode spezifiziert, dass ein int zurückgegeben werden muss (sum ist ja ein int). Deine Methode spezifiziert (mittels "void"), dass nicht zurückgeben wird.
 

Sagovana

Mitglied
Noch einfacher ist (im wahrsten Sinne des Wortes) nach Adam Riese

sum =(n/2)*(n+1);

Warum das so ist, überlasse ich Dir :D

Ansonsten: Lies Steppan: Einstieg in Java6 . Da wird sehr gut erklärt, was wohin gehört und wie man Klassen in eigene Dateien packt.
EDIT: Ups obiges gilt nur, wenn n gerade ist, ansonsten muss man noch was ergänzen.
 
Zuletzt bearbeitet:

Sagovana

Mitglied
Es ist zwar nach Carl Gauß und gilt auch für ungerade Zahlen, aber ist ok.

Mist, hatte Adam Riese in Erinnerung. Aber es gilt bei geraden Zahlen.

N=100
sum=100/2 * (100+1) =50 *101 = 5050 (Das war wohl die Originalaufgabe)

n ungerade: man reduziert auf n-1 (=gerade und addiert n dazu)

N=101
sum= 100/2*(100+1)+101=5151

EDIT: auch die Grundvariante funktioniert für gerade und ungerade Zahlen. ;-) Danke für den Link.
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Öhm. hast du es schon mal mit ungeraden versucht?
Code:
n = 100
100/2*(100+1) = 50*101 = 5050

n = 101
101/2*(101+1) = 50,5*102 = 5151
Das Produkt von
Code:
n*(n+1)
ist definitiv durch 2 ganzzahlig teilbar, da einer der Zahlen durch 2 teilbar ist.
 

Sagovana

Mitglied
Öhm. hast du es schon mal mit ungeraden versucht?
Code:
n = 100
100/2*(100+1) = 50*101 = 5050

n = 101
101/2*(101+1) = 50,5*102 = 5151
Das Produkt von
Code:
n*(n+1)
ist definitiv durch 2 ganzzahlig teilbar, da einer der Zahlen durch 2 teilbar ist.

Hatte ich auch so in Erinnerung gehabt, das die Formel immer gilt. Ich war nur unsicher geworden. ;-)
 

anarcho-anton

Neues Mitglied
Java:
public class Summe {
  static int calcSum(int n){
    int sum = 0;
    for(int i = 1; i <= n; i++) {
      sum = sum + i;
    }
    return sum;
  }
  public static void main(String[] args) {
    for (int i=1;i<20;i++) {
      System.out.println("n: " + i + ", sum: " + calcSum(i));
    }
  }
}

So ungefähr kannst du es machen.
Aber bevor du dich ins Programmieren stürzt, solltest du dir Grundlagen verschaffen. Es gibt genügend Anfänger-Bücher (z.B. Inselbuch).
P.S. Bei euch gibt es bestimmt auch Übungen und Tutorien zum Fach, wo man Fragen stellen kann (und wenn man etwas nicht versteht auch "muss")

Da müssten mir doch alle summen von 1 bis 19 in dem fall ausgegeben werden?
ich hab so bisschen das gefühl das der java kram ziemlich viel basteln und probieren ist..
morgen wird sich erstmal ein Buch bestellt.. danke für die antworten!
 

Sagovana

Mitglied
Da müssten mir doch alle summen von 1 bis 19 in dem fall ausgegeben werden?
ich hab so bisschen das gefühl das der java kram ziemlich viel basteln und probieren ist..
morgen wird sich erstmal ein Buch bestellt.. danke für die antworten!

Das mit dem Buch ist gerade für Einsteiger ein absolutes Muß.

ES ist am Anfang immer viel probieren. Das hat weniger was mit Java zu tun, als vielmehr mit dem Grundverständnis des Programmierens. Das dauert.

Und: Es gibt immer viele Wege zum Ziel. Saubere, effiziente, schöne und dumme. Man lernt durch Erfahrung.

Beispiel:

Deine For-nextschleife ist schön und man sieht die Aufgabe darin direkt umgesetzt. Jedoch bei n=10000000 wirst Du sehr lange warten, weil 2x10000000 Additionen und 10000000 Schleifenoperationen durchgeführt werden.

sum =(N*(n+1))/2 liefert ein blitzschnelles Ergebnis, da nur 3 Rechenoperationen durchgeführt werden. Dafür ist es aber nur sehr schwer verständlich, was da eigentlich berechnet wird. Darum sind auch Kommentare so immens wichtig im Quelltext.

Forschleifen sind nur bei einer geringen Anzahl an Durchläufen wirklich sinnvoll. Insbesondere geschachtelte For-Schleifen können endlos dauern.

Das alles lernt man nur durch probieren und gute Bücher. ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Summe aller echten Teiler Java Basics - Anfänger-Themen 2
F Summe aller echten Teiler und Zahlen zurückgeben Java Basics - Anfänger-Themen 1
A Summe aller ungeraden Zahlen Java Basics - Anfänger-Themen 5
J ArrayList: summe aller Spielkarten Java Basics - Anfänger-Themen 15
L Array: Summe aller geraden und ungeraden Zahlen ermitteln Java Basics - Anfänger-Themen 9
B Summe aller Zahlen von 1 bis zu dieser Zahl (ohne while oder for schleife) Java Basics - Anfänger-Themen 4
D Summe aller Positiven Integer aus einer Liste mit ActionObject Java Basics - Anfänger-Themen 2
S 100 als Summe Java Basics - Anfänger-Themen 16
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
Ninum Summe Java Basics - Anfänger-Themen 3
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
R Summe Java Basics - Anfänger-Themen 13
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
A Summe des Arrays pd mit alternativer Schleife Java Basics - Anfänger-Themen 2
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
F Summe in einem Array bestimmen Java Basics - Anfänger-Themen 3
N Quadratische Matrix inkl Summe Java Basics - Anfänger-Themen 8
M Array Summe- wo ist der Fehler ? Java Basics - Anfänger-Themen 13
K Erste Schritte Berechnung der Summe zweier Arrays Java Basics - Anfänger-Themen 15
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
K Methode: Summe von n Zahlen Java Basics - Anfänger-Themen 24
S Summe aus Kombinationen /permutationen einer Liste mit einer Obergrenze Java Basics - Anfänger-Themen 10
P Altklausur: Abfrage der Summe Java Basics - Anfänger-Themen 9
D Summe berechnen mit verändertem Wert aus Schleife Java Basics - Anfänger-Themen 1
B summe von 2 Matrizen Java Basics - Anfänger-Themen 20
V Input/Output ArrayList Summe ausgeben Java Basics - Anfänger-Themen 57
B Serial Key prüfen -> String mit privatem Key und dann abgleichen; Summe = 0 Java Basics - Anfänger-Themen 8
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
Joew0815 summe aus einem aarray Java Basics - Anfänger-Themen 4
E Summe der "Nachbarn" eines Wertes in einem Array bestimmen Java Basics - Anfänger-Themen 8
P Schleife zur Berechnung von einer Summe Java Basics - Anfänger-Themen 16
G Rekursion Summe Java Basics - Anfänger-Themen 15
D Summe von Eingaben in einer for Schleife Java Basics - Anfänger-Themen 4
J Summe mit 45 nachkommastellen Java Basics - Anfänger-Themen 8
V Programm summe Java Basics - Anfänger-Themen 11
I Summe eines Arrays ohne Schleife Java Basics - Anfänger-Themen 4
C Summe berechnen Java Basics - Anfänger-Themen 22
D Pyramide: Summe der diagonal über ihr stehenden Zahlen! Java Basics - Anfänger-Themen 6
A summe von m bis n mit for-Schleife Java Basics - Anfänger-Themen 5
M array - summe quer Java Basics - Anfänger-Themen 9
J summe von aufeinander folgenden floats eines arrays Java Basics - Anfänger-Themen 10
B array bestimmte summe berechnen Java Basics - Anfänger-Themen 4
S Summe Berechnen Java Basics - Anfänger-Themen 6
S Summe von Zufallszahlen Java Basics - Anfänger-Themen 9
Z Summe von Vektor-Elementen Java Basics - Anfänger-Themen 5
E Array gebildete Summe ausgeben Java Basics - Anfänger-Themen 5
D 100.0% gleichmäßig aufteilen, so dass Summe 100.0% sind, nicht 99,9% oder 100,1% Java Basics - Anfänger-Themen 3
M Rekursion Summe vom Array Java Basics - Anfänger-Themen 2
W sin-funktion x-wert der summe approximieren Java Basics - Anfänger-Themen 2
M Summe eines Arrays Java Basics - Anfänger-Themen 2
U Summe produkt von einem array Java Basics - Anfänger-Themen 9
J Summe postive Zahlen und negative Zahlen Java Basics - Anfänger-Themen 12
G Summe der Ziffern einer Zahl EFFIZIENT berechnen? Java Basics - Anfänger-Themen 18
J matrix nach summe der spalten sortieren Java Basics - Anfänger-Themen 5
Antoras Zahlen mischen und mit einer for-Schleife Summe berechnen Java Basics - Anfänger-Themen 12
G Summe zweier doubles falsch? Java Basics - Anfänger-Themen 10
G Md5 Summe eines Fileobjektes bilden Java Basics - Anfänger-Themen 4
G JTable Zwischenüberschriften bzw. Summe? Java Basics - Anfänger-Themen 2
L Berechnung Summe Java Basics - Anfänger-Themen 3
A String in Zahlen/Summe umformen Java Basics - Anfänger-Themen 2
R Summe Iterative Java Basics - Anfänger-Themen 6
S Summe innerhalb eines arrays? Java Basics - Anfänger-Themen 2
M summe von squares Java Basics - Anfänger-Themen 3
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
F Summieren aller Geschenke vom Typ Geschenk? Java Basics - Anfänger-Themen 12
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
L Summer aller Integer-Zahlen im Intervall [x,y] Java Basics - Anfänger-Themen 6
1 Minimum aller Elemente in einem Array bestimmen Java Basics - Anfänger-Themen 10
S Collections Ausgabe aller Tastencodes Java Basics - Anfänger-Themen 9
F Nach Beendigung aller Schleifen von vorn anfangen, Java Basics - Anfänger-Themen 5
R string aller args[] ? Java Basics - Anfänger-Themen 8
O Erste Schritte Aller Anfang ist schwer ! Bitte um Unterstützung Java Basics - Anfänger-Themen 6
O Liste aller Instanzen einer Klasse Java Basics - Anfänger-Themen 18
M Aller anfang ist schwer :D Hilfe! Java Basics - Anfänger-Themen 18
L Liste aller Klassen die in einem Paket sind Java Basics - Anfänger-Themen 7
F Aller Objekte einer Klasse Java Basics - Anfänger-Themen 9
P Ermitteln aller perfekten Zahlen Java Basics - Anfänger-Themen 12
S Liste aller Partitionen (auch "unmounted") Java Basics - Anfänger-Themen 2
F Liste aller Ordner auf einem Laufwerk erstellen? Java Basics - Anfänger-Themen 3
Z Geburtstag aller Angestellten am bestimmten Datum Java Basics - Anfänger-Themen 59
A OOP Ausgabe aller erstellten Objekte Java Basics - Anfänger-Themen 3
M Eclipse: Durchsuchen aller Dateien? Java Basics - Anfänger-Themen 1
B Liste aller Klassen die ein Interface implementieren. Java Basics - Anfänger-Themen 7
K Anzahl aller Datensätze anzeigen ? Java Basics - Anfänger-Themen 5
L Auflistung aller Fonts Java Basics - Anfänger-Themen 2
G Liste aller WindowListener Java Basics - Anfänger-Themen 3
D Die Frage aller Fragen Java Basics - Anfänger-Themen 22
J Auslesen aller Attribute mit JDOM Java Basics - Anfänger-Themen 15
G Aller anfang is schwer. Java Basics - Anfänger-Themen 4
A ausgabe aller 10-bitzahlen Java Basics - Anfänger-Themen 6
A Liste aller Items einlesen Java Basics - Anfänger-Themen 8
B Wo finde ich eine Übersicht aller Methoden? Java Basics - Anfänger-Themen 2
M Stream mit den ersten n natürlichen Zahlen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben