Hallo,
Folgendes wollte ich umsetzen, und irgendwie ist der Wurm drin.
Ich habe eine Variable s, die Anzahl an Stellen beschreibt, und die Variable n, der den Maximalwert angibt.
Dann brauch ich folgendes in einem Array:
wenn n=3, und s=2
01
02
03
12
13
23
oder wenn n=5, und s=3
012
013
014
015
023
024
025
034
035
045
123
124
125
134
135
145
234
235
245
345
Note:
während der verschiedenen "Phasen", benutze ich diese Zahlen in einem anderen Zusammenhang.
Also soll immer die Ziffer ganz rechts erhöht werden, und wenn sie "n" erreicht soll die Ziffer links davon hoch gesetzt, und die Ziffer selbst auf einen über den Wert links neben sich gesetzt werden. An sich klingt das Prinzip einfach, aber ich verdrehe mich da wahrscheinlich einfach nur, weil das ganze noch in einem Schleifensystem hängt.
Ich hab das ganze aktuell so gelöst:
Wenn mir jemand sagen kann, ob er hier ein Fehler findet (evtl gibt es auch keinen Fehler und der Fehler liegt in der Verarbeitung, oder bei der übermittlung) oder ob er eine leichtere / übersichtlichere Lösung findet oder ob ihr meine Lösung richtig und gut findet.
Würde mich über Antworten freuen,
Gruß Söncke
Folgendes wollte ich umsetzen, und irgendwie ist der Wurm drin.
Ich habe eine Variable s, die Anzahl an Stellen beschreibt, und die Variable n, der den Maximalwert angibt.
Dann brauch ich folgendes in einem Array:
wenn n=3, und s=2
01
02
03
12
13
23
oder wenn n=5, und s=3
012
013
014
015
023
024
025
034
035
045
123
124
125
134
135
145
234
235
245
345
Note:
während der verschiedenen "Phasen", benutze ich diese Zahlen in einem anderen Zusammenhang.
Also soll immer die Ziffer ganz rechts erhöht werden, und wenn sie "n" erreicht soll die Ziffer links davon hoch gesetzt, und die Ziffer selbst auf einen über den Wert links neben sich gesetzt werden. An sich klingt das Prinzip einfach, aber ich verdrehe mich da wahrscheinlich einfach nur, weil das ganze noch in einem Schleifensystem hängt.
Ich hab das ganze aktuell so gelöst:
Code:
boolean bool = true;
int[] stellen = new int[s];
// startnummern
for (int i3 = 0; i3 < stellen.length; i3++) {
stellen[i3] = i3;
}
while (bool) {
// Hier wird das Array "stellen" verarbeitet
stellen[0]++;
// stellenüberprüfen, ob eine umgestellt werden muss
for (int i3 = 0; i3 < stellen.length; i3++) {
if (stellen[i3] > n - i3) {
if (i3 < stellen.length - 1) {
stellen[i3 + 1] += 1;
stellen[i3] = stellen[i3 + 1] + 1;
} else {
// wenn der letzte zu groß ist, dann ist das gesammte zu ende
bool = false;
}
}
}
}
Wenn mir jemand sagen kann, ob er hier ein Fehler findet (evtl gibt es auch keinen Fehler und der Fehler liegt in der Verarbeitung, oder bei der übermittlung) oder ob er eine leichtere / übersichtlichere Lösung findet oder ob ihr meine Lösung richtig und gut findet.
Würde mich über Antworten freuen,
Gruß Söncke