Java: elemento vettore uguale al prodotto/somma della corrispondente riga/colonna di matrice

Tema 91

Scrivere un metodo isIesimoElementoArrayUgualeAprodottoIesimaRigaOsommaIesimaColonna che riceve in ingresso una matrice quadrata di interi M di dimensione e un array di interi V e restituisce TRUE se l’i-esimo elemento di V è uguale al prodotto degli elementi dell’i-esima riga di M oppure è uguale alla somma degli elementi dell’i-esima colonna di M.

Ad esempio, siano M e V rispettivamente la matrice e il vettore così costituiti

9 3 17 7 11
2 1 14 2 1
3 5 6 12 7
1 2 24 3 1
3 13 15 15 7
18 56 76 39 72

allora isIesimoElementoArrayUgualeAprodottoIesimaRigaOppureAsommaIesimaColonna (M,V) = TRUE

 public class tema91{ // approntiamo un metodo di supporto per calcolare la somma di una colonna // il parametro “indiceColonna” sarà passato nel metodo generale ogni volta che // bisognerà // sommare l’i-esima colonna public static int sommaColonna (int[][] M, int indiceColonna) { int somma = 0; for (int i = 0; i < M.length; i++) somma += M[i][indiceColonna]; return somma; } // approntiamo un metodo di supporto per calcolare il prodotto di una riga // il parametro “indiceRiga” sarà passato nel metodo generale ogni volta che // bisognerà // moltiplicare l’i-esima riga public static int prodottoRiga (int[][] M, int indiceRiga) { int prodotto = 1; for (int j = 0; j < M[0].length; j++) prodotto *= M[indiceRiga][j]; return prodotto; }  public static boolean isIesimoElementoArrayUgualeAprodottoIesimaRigaOppureAsommaIesimaColonna (int[][] M, int [] V){ for (int i = 0; i < V.length; i++) // i metodi di supporto riceveranno come parametro, di volta in volta, l’indice // di scansione dell’array if ((V[i] != prodottoRiga (M, i)) && (V[i] != sommaColonna (M,i))) return false; return true; }  /* Applicazione di prova */  public static void main(String args[]){ int[][] M = {{9,3,17,7,11}, {2,1,14,2,1}, {3,5,6,12,7}, {1,2,24,3,1}, {3,13,15,15,7}}; int [] V={18,56,76,39,27}; System.out.println(isIesimoElementoArrayUgualeAprodottoIesimaRigaOppureAsommaIesimaColonna (M,V)); }}     

Commenti

commenti