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
20 Maggio 2015