Methoden Arrayeinträge summieren

valentina2013

Bekanntes Mitglied
Hallo liebes Forum,

ich muss eine Methode schreiben die die Elemente des Arrays nach diesem Schema summiert:
bild.png
den ersten Schritt bekomme ich hin,
Java:
static long sum(long[] a){  
     int k=a.length/2;

       for(int i=0;i<k; i++)
         a+=a[i+k]; 

     return a[0];
   
   }
das wars dann aber auch ;(. versuche ich einen Wert für Arrayhalbierung zu benutzen wird meine Methode eine endlose Schleife:
Java:
static long sum(long[] a){
     int k=a.length/2;
     while(k>1){
       for(int i=0;i<k; i++){
        
         a[I]+=a[i+k];
         
       }
       
       if((k/2)%2==0)
         k=k/2;
       else
         k=k/2+1;
       
     }     
       
     
     return a[0];
     
   }

habt ihr eine Idee wie ich das Problem umgehen könnte??[/I]
 
Zuletzt bearbeitet von einem Moderator:

Dompteur

Top Contributor
Der einzige Punkt auf den du aufpassen musst, ist, dass bei einer ungeraden Anzahl von Elementen beim letzten Feld nur ein Summand existiert.
Eine Lösung könnte so aussehen.

Java:
public class Test {
 
    static int[] sum ( int[] a) {
        int newSize = ( a.length + 1 ) / 2;
        int[] result = new int[newSize];
        for (int i = 0; i < newSize; i++ ) {
            int j = i+newSize;
            result[i] = a[i] + ( j < a.length ? a[j] : 0);
        }
        return result;
    }
   
    static void print ( int[] a) {
        for (int i = 0; i < a.length; i++ ) {
            System.out.print(a[i] + "; ");
        }
        System.out.println();
    }
 
   
    public static void main(String[] args) {
        int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
 
        print ( a );
        while ( a.length > 1) {
            a = sum ( a);
            print ( a );
        }
    }       
}
 

valentina2013

Bekanntes Mitglied
hi, danke für deine Antwort, das stimmt mit der gerade/ungerade arraylänge. habe aber immer noch keine idee wie ich dann die nächste schritte machen soll.
P.S. wie füge ich denn java code so schön ein wie du ein?bei mir ist kein button zu sehen
 

Ähnliche Java Themen


Oben