Hallo, ich habe ein Programm geschrieben, das mir meine Elemente im Array immer wieder mit dem Nachbar aufsummiert z.B sollte mit dem Beispiel die Ausgabe so aussehen:
[63]
[34,29]
[17,17,12]
[7,10,7,5].
Ich habe das Iterativ hinbekommen, jedoch möchte ich das Programm Rekursiv umschreiben, unten könnt ihr sehen wie weit ich gekommen bin. Jedoch ist hier das Problem, das mein array.length immer nur bei -1 bei jedem durchlauf bleibt. So addiere ich jedes mal die letzte Zahl mit, was ich aber nicht möchte. Ich brauche irgendein Ansatz wie ich mein Array nach jeder Addition am Ende wegschneide. Kann mir da jemand Tipps und gute Vorschläge geben? Bin seit gestern Nacht am grübeln.. Vielen Dank im Voraus!
[63]
[34,29]
[17,17,12]
[7,10,7,5].
Ich habe das Iterativ hinbekommen, jedoch möchte ich das Programm Rekursiv umschreiben, unten könnt ihr sehen wie weit ich gekommen bin. Jedoch ist hier das Problem, das mein array.length immer nur bei -1 bei jedem durchlauf bleibt. So addiere ich jedes mal die letzte Zahl mit, was ich aber nicht möchte. Ich brauche irgendein Ansatz wie ich mein Array nach jeder Addition am Ende wegschneide. Kann mir da jemand Tipps und gute Vorschläge geben? Bin seit gestern Nacht am grübeln.. Vielen Dank im Voraus!
Java:
public class SumArray {
public static void main(String[] args) {
int [] randomarray = {1,6,4,3,2};
System.out.print("Das Array: ");
for (int index = 0; index < randomarray.length; ++index) {
System.out.print(randomarray[index] + " ");
}
System.out.println();
System.out.println("_____________________________________");
System.out.println();
sum(randomarray,randomarray.length);
}
public static void sum(int [] array, int n){
if(n <= 0)
return;
for (int j = 0; j < array.length - 1; j++) {
array[j] = array[j] + array[j + 1];
System.out.print(array[j] + " ");
}
System.out.println("");
sum(array,n-1);
}
}