schleifen -> rekursiv
-
Hi,
Also irgendwie habe ich seit einigen tagen ein blackout, darum wende ich mich nun mal an euch..
Dieser code:
for (int i=0;i<x;i++) { for (int ii=0;ii<x;ii++) { for (int iii=0;iii<x;iii++) { // hier brauche ich zugriff auf alle i's (i, ii, iii, ...) } } }
Nun, das problem ist, dass ich dynamisch ermitteln muss wie oft die schleifen ineinander verschachtelt werden sollen. (=wie viele schleifen und demzufolge zählvariabeln es gibt).
Tönt eigentlich nach einer typischen aufgabe für rekursive programmierung, aber ich hab' keinen plan wie ich das angehen soll, insbesondere mit dem zugriff auf alle vorhergehenden zählvariabeln..
Ich wäre sehr froh wenn jemand hier schlauer ist als ich..
Danke schon mal!
-konfusius
-
Was willst du denn machen? d.h. welches Problem lösen?
-
Alle möglichen Summen aus einem Array von Integern berechnen.
-konfusius
-
konfusius schrieb:
Alle möglichen Summen aus einem Array von Integern berechnen.
-konfusius
?Hä? so:
1 2 3 4
= 1
2
3
4
3
4
5
5
6
7
etc?
-
ne, eigentlich so:
1,2,3,4,5
1+2
1+3
1+4
1+5
2+2
2+4
2+5
3+4
3+5
4+5
1+2+3
1+2+4
1+2+5
1+3+4
1+3+5
1+4+5
2+3+4
2+4+5
3+4+5
1+2+3+4
1+2+4+5
1+3+4+5
2+3+4+5
-
Spontane idee, mach doch nen rekursiven Aufruf mit:
(zwischenergebnis und restarray)
also
[cpp]// Wir bearbeiten den array von hinten, also bei (1 2 3 4) 4 zuerst
sum(int erg, int* array, int array_size) {
for (int i = 0; i < array_size) {
erg += array[i];
cout << erg << endl;
if (array_size == 0)
return;
else
sum (erg, array, array_size-1);
}
}void
main () {
sum(array[size-1], array, size);
}
[/cpp]
-
ja, so was ähnliches könnte klappen..
ich werd heute abend sehen ob das hinhaut.
danke schon mal!