Ok ... io facevo solo un esempio generale.Originariamente inviato da mattodijava
quello che voglio ottenere è
a
eb
ifc
lgd
mh
n
e devo fare la concatenazione di questi char e ritornare la stringa(questo lo so fare)
cmq la matrice deve essere quadrata
Mettiamola quadrata:
A B C
D E F
G H I
Tu vuoi ottenere A D B G E C H F I. In pratica in diagonale verso alto/destra.
Le diagonali partono dal lato A D G e poi dall'altro lato H I.
Prendiamo l'inizio con A D G. Cosa ti viene in mente? Di fare un ciclo for per scansionare le righe. Per ogni riga parti dalla prima colonna e con un altro ciclo interno, ad ogni iterazione aumenti la colonna e diminuisci la riga .... finché possibile ovviamente (c'è da fare un test).
Cosa molto simile per l'altro lato.
Anzi ... si potrebbe trattare i due lati allo stesso modo. La riga fisica può andare da 0 a 2 (nel caso sopra) ma tu potresti farla andare fino a 4. Ovviamente non ci accedi subito ... se vedi che la riga supera il massimo, la differenza la sommi sulla colonna.
Se arrivi alla riga 3 (che non esiste), in realtà devi partire dalla riga 2 e dalla colonna 1 (la seconda) cioè 3-2=1.

Rispondi quotando