C# :: Aufgabe #226 :: Lösung #3
3 Lösungen

#226
Digitbegrenztes Zählen
Anfänger - C#
von hollst
- 31.08.2018 um 11:04 Uhr
Gegeben sei ein positives Integerarray (uint) AMAX der Länge N, das mit Zufallszahlen zwischen (inclusive) 1 und einer Konstanten amax gefüllt ist.
Die Feldbelegung von AMAX stellt obere Wertgrenzen dar.
Man schreibe ein Programm, das alle möglichen Belegungen eines positives Integerarrays A (Länge N) auflistet,
wobei die Feldwerte von A entsprechend der Grenzwertbelegung von AMAX stets unterschritten werden müssen.
Beispiel (c#):
C#-Code
Die Feldbelegung von AMAX stellt obere Wertgrenzen dar.
Man schreibe ein Programm, das alle möglichen Belegungen eines positives Integerarrays A (Länge N) auflistet,
wobei die Feldwerte von A entsprechend der Grenzwertbelegung von AMAX stets unterschritten werden müssen.
Beispiel (c#):

int N = 5, amax = 11; uint[] AMAX = new uint[] {3, 2, 9, 1, 4} //mögliche uint[] A sind: new uint[] {0, 0, 0, 0, 0} new uint[] {1, 0, 0, 0, 0} new uint[] {2, 0, 0, 0, 0} new uint[] {0, 1, 0, 0, 0} new uint[] {1, 1, 0, 0, 0} new uint[] {2, 1, 0, 0, 0} new uint[] {0, 0, 1, 0, 0} // ... // ... new uint[] {2, 1, 8, 0, 3}
#3

von hollst (13980 Punkte)
- 22.02.2019 um 10:03 Uhr

using System; using static System.Console; using System.Collections.Generic; namespace Aufgabe_226 { static class Program { static void Main() { uint[] AMAX = new uint[] { 3, 2, 9, 1, 4}; List<uint[]> A = AMAX.AllNumbers(); WriteLine($"AllNumbers_TEST(): {A.Count}"); for(var i = 0; i < A.Count; i++) { Write($"{i,4}: "); for(var j = 0; j < A[i].Length; j++) Write($"{A[i][j],2} "); WriteLine(); } ReadKey(); } public static List<uint[]> AllNumbers(this uint[] AMAX) { List<uint[]> result = new List<uint[]>(); uint maxn = 1; for (var i = 0; i < AMAX.Length; i++) maxn *= AMAX[i]; uint[] A = new uint[AMAX.Length]; for(var i = 0; i < maxn; i++) { uint[] AA = new uint[AMAX.Length]; A.CopyTo(AA, 0); result.Add(AA); for (var j = 0; j < AMAX.Length; j++) if(A[j] < AMAX[j] - 1) { A[j]++; break; } else A[j] = 0; } return result; } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1