Addition von 1 bis n, in Arrays umstellen

Bitte aktiviere JavaScript!
Hallo, ich würde gerne meine bisherige Methode in eine mit Arrays umwandeln, aber komme leider nicht weiter:
Thema ist hier von 1 bis n zu addieren, beispielsweise n=5 1+2+3+4+5 = 15
siehe Code:
Java:
public static int einsBisN(int n) {
       int erg = 0;
       for (int i = 1; i <= n; i++)
             erg += i;
       return erg;
Nun möchte ich dieses umwandeln, mein Anfang sieht so aus:
Java:
int [] array = new int [5];
        int summe = 1;
        for(int i = 0; i < array.length; i++) {
            array[i] += summe;

wie geht es weiter?
Ich hoffe jemand kann mir hier weiterhelfen.
Danke! :)
 
Zuletzt bearbeitet von einem Moderator:
A

Anzeige




Schau mal hier —> (hier klicken)
Du willst bei Eingabe von n=5 ein Array {1,3,6,10,15} als Ergebnis bekommen? Dann musst Du lediglich in Deiner ersten Version in jeder Iteration das erg, nach dessen Erhöhung, in Deinem Array an Index i-1 speichern.
 
Ich möchte bei Eingabe von n=5 das Ergebnis 15 erhalten.
Die 15 ergibt sich durch 1+2+3+4+5 , nämlich 1 bis n addieren.
 
Also, die Signatur deiner Methode soll nach wie vor so aussehen: `int berechne(int n)` ?
Also: Du gibst ein int rein (in dem Fall, wie weit aufaddiert werden soll) und bekommst ein Ergebnis als int zurück, was eben die Summe von 1..n ist. Richtig?
Falls ja: Was soll das denn jetzt mit einem Array zu tun haben? Du hast weder ein Array als Eingabe noch als Ausgabe.
Falls nein: Sag mal ganz klar, was die Eingabe deiner Berechnung/Methode ist und was ganz genau die Ausgabe bzw. der Rückgabewert.
 
Hallo, ich würde gerne meine bisherige Methode in eine mit Arrays umwandeln, aber komme leider nicht weiter:
Thema ist hier von 1 bis n zu addieren, beispielsweise n=5 1+2+3+4+5 = 15
In diesem Kontext ein Array zu verwenden würde dann Sinn machen wenn die Berechnung der einzelnen Werte viel Zeit in Anspruch nimmt und die Verfügbarkeit der Ergebnisse keine Latenzen toleriert. Dann könnte man die Berechnung der Werte im Vorfeld machen und die Ergebnisse in ein Array speichern. Der Zugriff per Index wäre dann schnell. Dafür muss aber Speicher geopfert werden. Bei der Gauschen Summe ist nicht einmal eine Schleife nötig.
f(n) = (n*(n+1))/2;
f(5) = 5*6/2 = 15;
--> jeder Wert kann sofort ermittelt werden.
;)
 
Habe es nach viel rätseln dann endlich hinbekommen :)
Mit diesem Code funktioniert es:
Java:
public static int array1BisN(int n) {
        int [] array = new int[n];
        int summe = 0;
        for (int i = 0; i < array.length; i++) {
            array[i] = i+1;
            summe += array[i];
    } return summe;
Trotzdem danke an alle :)
 
Habe es nach viel rätseln dann endlich hinbekommen :)
Mit diesem Code funktioniert es:
Java:
public static int array1BisN(int n) {
        int [] array = new int[n];
        int summe = 0;
        for (int i = 0; i < array.length; i++) {
            array[i] = i+1;
            summe += array[i];
    } return summe;
Trotzdem danke an alle :)
Welchen Sinn hat dein Array hier bitte außer Speicher zu vergeuden?
 
A

Anzeige




Vielleicht hilft dir das hier weiter: (klicke hier)
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben