Java: matrice palindroma

Tema 81

Scrivere un metodo isPalindroma che riceve in ingresso una matrice M e restituisce TRUE se la matrice è palindroma; FALSE altrimenti. Una matrice si dice palindroma se la prima riga è uguale all’ultima riga, la seconda è uguale alla penultima e così via, in modo che le colonne risultino uguali sia che vengano lette dall’alto verso il basso sia che vengano lette dal basso verso l’alto.

Ad esempio, sia M una matrice così costituita

1 3 0 6 9
2 5 7 8 4
9 2 5 7 6
2 5 7 8 4
1 3 0 6 9

allora isPalindroma (M) = TRUE

 public class tema81 { public static boolean isPalindroma (int[][] M) { boolean esito = true; // realizziamo due cicli imponendo che l’indice di scansione delle righe arrivi // fino a metà della dimensione // totale; nel caso di matrici di dimensione dispari non è importante valutare // la riga centrale, essa infatti // risulta ininfluente ai fini della verifica del requisito for (int i = 0; i < M.length / 2 && esito; i++) for (int j = 0; j < M[0].length && esito; j++) // adesso confrontiamo le righe // poiché gli indici delle righe sono ancorati tra loro tramite la variabile // “i”, si comincia col confrontare // la prima con l’ultima, poi la seconda con la penultima e così via man mano // che aumenta il valore di “i” if (M[i][j] != M[M.length –i -1][j]) esito = false; return esito; }  /* Applicazione di prova */  public static void main(String[] args) { int[][] M = new int[][]{{1,3,0,6,9}, {2,5,7,8,4}, {9,2,5,7,6}, {2,5,7,8,4}, {1,3,0,6,9} }; System.out.println(isPalindroma (M)); System.out.println(); // testiamo il metodo sulla matrice Q nella quale abbiamo solo cambato l’ultimo // elemento della prima riga int[][] Q = new int[][]{{1,3,0,6,5}, {2,5,7,8,4}, {9,2,5,7,6}, {2,5,7,8,4}, {1,3,0,6,9} }; System.out.println(isPalindroma (Q)); } }     

Commenti

commenti