Java: test elementi multipli in una matrice

Tema 101

Scrivere un metodo verificaSeNellaMatriceCiSonoElementiMultipliDiAltri che riceve una matrice di interi M e restituisce TRUE se M contiene elementi che sono multipli di altri elementi presenti nella matrice; FALSE altrimenti.

Ad esempio, sia M la matrice così costituita

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

allora verificaSeNellaMatriceCiSonoElementiMultipliDiAltri (A) = TRUE

 public class tema101{ // usiamo un metodo di supporto che verifica se un numero è multiplo di qualche // elemento di una matrice public static boolean isMultiplo (int k, int[][] M){ // prepariamo un contatore che sarà incrementato ogni volta che il numero // risulterà multiplo di un elemento int contatoreMultipli = 0; // scorriamo la matrice riga per riga for (int i = 0; i < M.length; i++){ for (int j = 0; j < M.length; j++){ // effettuiamo il controllo if (k % M[i][j] == 0) // ed eventualmente aggiorniamo il contatore  contatoreMultipli++;} } // se il numero è risultato multiplo di qualche elemento e quindi il contatore // sarà maggiore di 1 // poniamo a TRUE un’opportuna variabile boolean boolean multipli; if (contatoreMultipli > 1) multipli = true; else multipli = false; return multipli; }  public static boolean verificaSeNellaMatriceCiSonoElementiMultipliDiAltri (int[][] M){ boolean multipli = false; // scorriamo la matrice for (int i = 0; i < M.length; i++){ for (int j = 0; j < M.length; j++){ // verifichiamo che qualche element di M sia multiplo di qualche element della // stessa matrice col metodo // definito precedentemente if (isMultiplo (M[i][j], M)) // in caso affermativo ponimo a TRUE  una variabile boolean multipli = true;} } return multipli; } /* Applicazione di prova */  public static void main(String[] args){ int[][] M = {{3,18,15,7,2}, {1,9,11,4,6}, {7,2,6,3,5}, {5,1,25,2,1}, {3,2,33,4,4}}; System.out.println(verificaSeNellaMatriceCiSonoElementiMultipliDiAltri (M));  // il risultato sarà TRUE System.out.println(); int[][] Q = {{31, 2, 3}, {5, 7, 11}, {13, 17, 19}}; System.out.println(verificaSeNellaMatriceCiSonoElementiMultipliDiAltri (Q)); //il risultato sarà FALSE } }     

Commenti

commenti