2D-Array mit Zahlenmuster füllen

sashady

sashady

Mitglied
Hallo Leute, ich habe bei einer Aufgabe folgendes Problem:

Ich soll ein 2D-Array mit einem Zahlenmuster füllen, bei dem die Zahl n (die Zahl, die die Größe des 2D-Arrays bestimmt und gleichzeitig die größte Ziffer ist) diagonal von rechts oben nach links unten laufen soll. Alle Einträge, die links und rechts von der Zahl n sind, werden von n absteigend initialisiert, also zB:

n = 5

1 2 3 4 5
2 3 4 5 4
3 4 5 4 3
4 5 4 3 2
5 4 3 2 1

Mein Problem ist nun, dass ich nicht weiß, wie ich die einzelnen Einträge links und rechts von n implementieren soll, dass sie eben dieses Muster ergeben.

Ich habe zuerst die Diagonale implementiert:

Java:
int column = 0;
        for (int row = n - 1; row >= 0; row--) {        //diagonale
            numberArray[row][column] = n;
            column++;
        }

/*
Ausgabe:

0  0  0  0  5
0  0  0  5  0
0  0  5  0  0
0  5  0  0  0
5  0  0  0  0

*/

Ich dachte mir, dass ich das Array in 3 Teile teile, also:
  1. links von der Diagonale
  2. Diagonale
  3. rechts von der Diagonale
aber ich komme so auf keine ordentliche Lösung..
Kann mir jemand einen Denkanstoß geben, wie ich genau vorgehen soll?
 
M

Meniskusschaden

Top Contributor
Ich dachte mir, dass ich das Array in 3 Teile teile, also:
  1. links von der Diagonale
  2. Diagonale
  3. rechts von der Diagonale
aber ich komme so auf keine ordentliche Lösung..
Das kommt mir zu kompliziert vor. Eigentlich sind ja alle Zeilen nach demselben Schema strukturiert: Jede Zeile beginnt mit einem Startwert und dann wird spaltenweise ein Delta addiert, dessen Vorzeichen beim Erreichen des Maximums gewechselt wird. Das wäre eine relativ einfache Alternative.
 
sashady

sashady

Mitglied
Ich habe jetzt folgenden Code implementiert. Habt ihr noch "Verschönerungsvorschläge" oder passt der so?
Bin halt noch blutiger Anfänger :D

Java:
    //a
    private static int[][] genFilledArray(int n) {
        int[][] numberArray = new int[n][n];
        for (int row = 0; row < n; row++) {
            int num = 1;
            for (int column = 0; column < n; column++) {
                if (row + column + num > n) {
                    numberArray[row][column] = n - num;
                    num++;
                } else {
                    numberArray[row][column] = row + column + num;
                }
            }
        }
        return numberArray;
    }
 
B

berndoa

Bekanntes Mitglied
Hallo Leute, ich habe bei einer Aufgabe folgendes Problem:

Ich soll ein 2D-Array mit einem Zahlenmuster füllen, bei dem die Zahl n (die Zahl, die die Größe des 2D-Arrays bestimmt und gleichzeitig die größte Ziffer ist) diagonal von rechts oben nach links unten laufen soll. Alle Einträge, die links und rechts von der Zahl n sind, werden von n absteigend initialisiert, also zB:

n = 5

1 2 3 4 5
2 3 4 5 4
3 4 5 4 3
4 5 4 3 2
5 4 3 2 1

Mein Problem ist nun, dass ich nicht weiß, wie ich die einzelnen Einträge links und rechts von n implementieren soll, dass sie eben dieses Muster ergeben.

Ich habe zuerst die Diagonale implementiert:

Java:
int column = 0;
        for (int row = n - 1; row >= 0; row--) {        //diagonale
            numberArray[row][column] = n;
            column++;
        }

/*
Ausgabe:

0  0  0  0  5
0  0  0  5  0
0  0  5  0  0
0  5  0  0  0
5  0  0  0  0

*/

Ich dachte mir, dass ich das Array in 3 Teile teile, also:
  1. links von der Diagonale
  2. Diagonale
  3. rechts von der Diagonale
aber ich komme so auf keine ordentliche Lösung..
Kann mir jemand einen Denkanstoß geben, wie ich genau vorgehen soll?
Du solltest dir mal ganz shclicht überlegen:
Gegeben der Zeilenindex i, der ja von 0 bis n-1 gehen kann.
An welcher Spaltenstelle j ist dann (in dieser zeile) die zahl n untegerbacht, also wo befindet sich bspw. die 5, wenn due die zeile mit i=1 betrachtest (was im bild der 2. zeile entspricht)?

wenn du diesen index j* des größten elements in jener zeile hast,
wenn du bspw. 1 nach links oder rechts gehst, also sich der index um 1 vergrößert oder verkleinert, welches element hast du dann an jener stelle, in bezug auf n gesehen?

an deiner stelle würde ich da an dreisatz denken a la
j* n
j*-1 n-1
j*-2 n-2

und natürlich nicht die andere seite zu vergessen
j*+1 n-1
j*+2 n-2


einen indexoutofbounds error zu vermeiden dürfte da wohl der schwierigste part dran sein :)



Edit: Auch noch ne dumme Idee:
wenn bspw. die zahl n=5 gegeben ist, baut man sich erst die "vollständige" reihe
1 2 3 4 5 4 3 2 1, idealerweise als array,
und betrachtet dann gewissermassen nur teilarrays davon.
also anfangs von j=0 bis 4
nächste zeile die werte von j=1 bis 5
usw
mit jeder weiteren zeile im ergebnis array geht man bzgl linker und rechter grenze einfach eins nach rechts :)
Nur so ein gedanke.

Man hat also das "volle bild" und liest je nach zeilenindex nur einen bestimmten bereich davon ab :)
muss man dann nicht ganz so arg mit indexumrechnungen arbeiten sondern hat schön sowas wie untere grenze von 0 bis n-1
obere grenze von n-1 bis 2n-2

oder so
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Hamudi Bachir 2D Array eingabe vom Benutzer Java Basics - Anfänger-Themen 31
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
t2im Java Array-Länge ändern? Java Basics - Anfänger-Themen 22
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
G ImageIcon in Byte-Array ablegen Java Basics - Anfänger-Themen 7
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
moiss002 Umgebungsvariable Kein Zugriff auf ein Array Java Basics - Anfänger-Themen 7
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
nonickatall Input/Output Zeichenkette in Array zerlegen Java Basics - Anfänger-Themen 2
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
HighLife Bestimmte Werte aus Array zählen Java Basics - Anfänger-Themen 15
OZAN86 Mehrdimensionales Array Java Basics - Anfänger-Themen 4
Yasemin bahar zweidimensionales Array Java Basics - Anfänger-Themen 5
Zeppi Vergleich von Array-Inhalten Java Basics - Anfänger-Themen 14
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
D Zufällige Auswahl aus einem angelegten Array? Java Basics - Anfänger-Themen 10
Zeppi OOP Array in Objekten Java Basics - Anfänger-Themen 4
K Wie kontrolliere ich ob ich die Zahl in meinem Array schon hab? Java Basics - Anfänger-Themen 9
O 2d Array einmal Eins Java Basics - Anfänger-Themen 2
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
J null exception Array Java Basics - Anfänger-Themen 5
H Array Elemente Java Basics - Anfänger-Themen 17
J Array Actionlistener Java Basics - Anfänger-Themen 9
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
T Methode um Array mit for-each-Schleife auszulesen Java Basics - Anfänger-Themen 7
T Elemente aus Array zu TableView JavaFX übertragen Java Basics - Anfänger-Themen 2
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
I Letztes, erstes Element vom Array Java Basics - Anfänger-Themen 9
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
D Doppelte For Schleife / Array Java Basics - Anfänger-Themen 3
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
A Einmaleins 2D Array Java Basics - Anfänger-Themen 1
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
O System.out array Java Basics - Anfänger-Themen 4
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
T Variable in for Schleife ansprechen ohne Array ? Java Basics - Anfänger-Themen 25
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 1
J Array Elemente werden nicht gefunden! Java Basics - Anfänger-Themen 6
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
TimoN11 Array mit unterschiedlichen längen aktualisieren, dann als Methodenwert einsetzen Java Basics - Anfänger-Themen 1
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
M Initialen mit Array wiedergeben Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
G Array Werte addieren Java Basics - Anfänger-Themen 4
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
L Array Rotation Java Basics - Anfänger-Themen 4
D Ausgabe von Array Java Basics - Anfänger-Themen 2
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
P Datentypen Array und String Java Basics - Anfänger-Themen 2
Zeppi Array Java Basics - Anfänger-Themen 2
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
Zeppi Jagged Array Java Basics - Anfänger-Themen 6
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
U Muster in einem Array erkennen Java Basics - Anfänger-Themen 8
L Array mit Wörtern gestalten Java Basics - Anfänger-Themen 2
Gaudimagspam Nummern generieren Array Java Basics - Anfänger-Themen 4
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
J Array; Elemente kopieren Java Basics - Anfänger-Themen 17
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Array füllen Java Basics - Anfänger-Themen 11
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
A Speicherbereich von Array nicht zusammenhängend? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen


Oben