Methode: Summe von n Zahlen

kaaa

Mitglied
Hi,
ich bin ein ziemlicher Neuling was Programmieren an geht und versteh folgende Aufgabe nicht ganz:

Schreibe eine Methode, die zu jeder natürlichen Zahl n die Summe der ersten n Zahlen berechnet.
Also für n=5 Ergebnis:1+2+3+4+5=15

Kann mir jemand das erklären?
Danke!
 
Was genau verstehst du denn nicht?

Wenn du nicht weißt wie du es programmieren sollst würde ich dir empfehlen erstmal Stift und Papier zur Hand zu nehmen und dir zu überlegen wie du es per Hand machen würdest.
Du würdest, von 1 beginnend, alle Zahlen bis n durchgehen und aufsummieren. Du würdest also sagen 1 + 2 = 3. 3 + 3 = 6. 6 + 5 = 10. 10 + 5 = 15. Jetzt musst du dir einen Weg überlegen,
wie du n Zahlen in Java durchlaufen kannst und die Zahl n immer auf eine int Variable drauf addierst.

Alternativ könntest du natürlich auch einfach mit der Formel: n * (n+1) / 2 arbeiten wobei n die höchste Zahl in deiner Zahlenfolge ist 🙂 Das ist aber sicherlich nicht der geforderte Weg 😛

Gruß Robert
 
Also könnte ich als Variable
static int calcsum(int n)
vor die Schleife schreiben oder geht das auch einfacher/anders? 🙂

Vielen Dank für die Hilfe! 😀
 
Nun ja du sollst ja eine Methode implementieren, d.h. du kannst local in der Methode eine Variable deklarieren

Java:
public int summe(int n)
{
    int summe = 0;
  
    // Schleifenpart

    return summe;
}

Die locale Variable kannst du in der Schleife dann immer aufsummieren und dann am Ende zurückgeben 🙂
 
Nun ja du sollst ja eine Methode implementieren, d.h. du kannst local in der Methode eine Variable deklarieren

Java:
public int summe(int n)
{
    int summe = 0;
 
    // Schleifenpart

    return summe;
}

Die locale Variable kannst du in der Schleife dann immer aufsummieren und dann am Ende zurückgeben 🙂

Nochmal vielen Dank! Wäre das so dann richtig?
Java:
public int summe (int n)
  {
     int summe = 0;
         for (int i=1; i<=n; i++)
               summe = summe + i;
     return summe;
  }
 
Wäre das so dann richtig?
Ausprobieren! Das macht die Informatik so schön 🙂

Aber ja es sieht gut aus. Wenn du es jetzt noch richtig formatierst und um die for noch die Klammern setzt ist es richtig:

Java:
public static int summe(int n)
{
    int summe = 0;
    for (int i = 1; i <= n; i++)
    {
        summe = summe + i;
    }
    return summe;
}
 
Das kann doch nicht dein/euer Ernst sein!
Vor 100 Jahren bereits hat man diese Aufgabe Grundschülern gestellt.
Ich mein, die Formulierung ist vielleicht etwas schwer....... ABER ANSONSTEN: EIGENINITIATIVE!
 
Wie sieht denn dein Code aus?
Das Code-Snippet enthält keine syntaktischen Fehler.
Zeig doch mal wo/wie du den Code eingefügt hast 🙂
 
Ich weiß zwar nicht was du da für eine App (oder IDE) benutzt aber ich bin mir ziemlich sicher dass du auch da eine Klasse anlegen musst 😉

also sowas in der Art:

Java:
public class Test
{
    public static void main(String[] args)
    {
        System.out.println(summe(5));
    }

    public static int summe(int n)
    {

        int summe = 0;
        for (int i = 1; i <= n; i++)
        {
            summe = summe + i;
        }
        return summe;
    }

}

Wenn dir nicht bewusst ist warum man das so machen muss solltest du dir noch mal ein Grundlagenhandbuch zur Hand nehmen und die ersten Seiten durchgehen. 🙂
 
Ich weiß zwar nicht was du da für eine App (oder IDE) benutzt aber ich bin mir ziemlich sicher dass du auch da eine Klasse anlegen musst 😉

also sowas in der Art:

Java:
public class Test
{
    public static void main(String[] args)
    {
        System.out.println(summe(5));
    }

    public static int summe(int n)
    {

        int summe = 0;
        for (int i = 1; i <= n; i++)
        {
            summe = summe + i;
        }
        return summe;
    }

}

Wenn dir nicht bewusst ist warum man das so machen muss solltest du dir noch mal ein Grundlagenhandbuch zur Hand nehmen und die ersten Seiten durchgehen. 🙂

Danke😉 Das wüsste ich theoretisch sogar... Ha jetzt haltet ihr mich wahrscheinlich echt alle für einen Grundschüler. Info liegt mir einfach 0

Aber danke für all die Hilfe! 😀
 
Alternativ könnte man's auch so machen:

Java:
public class Test {

    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            System.out.println(i+": "+summe(i));
        }
    }

    public static int summe(int n) {
        int i = n, j = 0;
        for (int l = 0; i > 0; i = i >> 1) {
            j += ((i & 1) == 1 ? n << l++ : 1 + l - ++l);
        }
        while (n != 0) {
            i = (j & n);
            j = j ^ n;
            n = i << 1;
        }
        return j >> 1;
    }
}

😳
 
a) Der Thread ist fast 5 Jahre alt.
b) Nein, das ist keine korrekte Lösung zu der Aufgabe des TE, die man im ersten Post finden kann. Was schon eine gute Leistung ist, da die Lösung bereits im Thread enthalten ist ....
 

Zurück
Oben