Linguaggio Java: sequenza di numeri in una matrice

Tema 60

Scrivere un metodo verificaSeEsisteSequenzaInMatrice che riceve una matrice di interi M e un intero n, e restituisce TRUE se all’interno di M esiste una sequenza di numeri da 1 fino a n; FALSE altrimenti.

Ad esempio, sia M la matrice così costituita

3 18 15 7 2
1 9 11 4 6
7 8 6 9 5
5 1 25 2 1
8 2 33 4 9

allora verificaSeEsisteSequenzaInMatrice (M,7) = TRUE

 public class tema60{ public static boolean verificaSeEsisteSequenzaInMatrice (int[][] M, int n){ // prepariamo una variabile boolean che useremo durante la verifica boolean trovato; // avviamo un ciclo che parte da 1 e arriva fino al valore k acquisito dal // metodo come parametro for(int k = 1; k < = n; k++){ trovato = false; // facciamo partire i cicli con cui scorreremo gli elementi della matrice for(int i = 0; i < M.length; i++) for(int j = 0; j < M[0].length; j++) // controlliamo che nella matrice esista almeno un elemento uguale al valore // assunto da k if(M[i][j] == k) // in caso affermativo impostiamo il valore della variabile boolean su TRUE trovato = true; // in caso contrario ci facciamo già restituire FALSE if(!trovato) return false; } return true; }  /* Applicazione di prova */  public static void main(String[] args){ int[][] M = {{3,18,15,7,2}, {1,9,11,4,6}, {7,8,6,9,5}, {5,1,25,2,1}, {8,2,33,4,9}}; // in questo caso otterremo TRUE: la sequenza da 1 a 7 è completa System.out.println(verificaSeEsisteSequenzaInMatrice (M,7)); System.out.println(); int[][] Q = {{9,18,15,7,2}, {1,9,11,4,6}, {7,8,6,9,5}, {5,1,25,2,1}, {8,2,33,4,9}}; // in questo caso otterremo FALSE: la sequenza da 1 a 7 è incompleta poichè // manca il 3 System.out.println(verificaSeEsisteSequenzaInMatrice (Q,7)); } }     

Commenti

commenti