Esercizio sulle diagonali non principali di una matrice
buonasera a tutti!!!
Dovrei implementare un metodo che riceve una matrice quadrata di interi M e restituisce true se e solo se, partendo da ciascun elemento e della prima riga di M, ad eccezione dell’ultimo, e muovendosi in direzione sud-est, si incontra almeno un altro elemento di valore uguale ad e.
Praticamente dovrei scandirmi la diagonale principale della matrice e le sopradiagonali e verificare che lungo esse ci siano due elementi uguali..
Ho provato ad implementare il metodo in questo modo,aiutandomi con un metodo di supporto ma non capisco perche non esce cavolo:non trovo l'errore..potete dargli un occhiata?grazie;)
Dovrei implementare un metodo che riceve una matrice quadrata di interi M e restituisce true se e solo se, partendo da ciascun elemento e della prima riga di M, ad eccezione dell’ultimo, e muovendosi in direzione sud-est, si incontra almeno un altro elemento di valore uguale ad e.
Praticamente dovrei scandirmi la diagonale principale della matrice e le sopradiagonali e verificare che lungo esse ci siano due elementi uguali..
Ho provato ad implementare il metodo in questo modo,aiutandomi con un metodo di supporto ma non capisco perche non esce cavolo:non trovo l'errore..potete dargli un occhiata?grazie;)
public static boolean verificadiagonale (int[][]m){ for(int j=0;jalse; } public static boolean sottometodo (int[][]m,int j){ for (int i = 1; i < m.length ; i++) { if(m[i][j+i]==m[0][j]) return true; } return false; } public static void main(String[] args) { int[][]m={{2,0,3,4,9}, {3,0,1,2,4}, {8,0,13,0,3}, {0,7,2,2,7}, {1,5,1,6,4}}; boolean b=verificadiagonale (m); System.out.print(b); }
Risposte
il primo pezzo di codice nn capisco perchè non lo visualizza.perciò lo scrivo normalmente:
public static boolean verificadiagonale (int[][]m){
for(int j=0;j
if (sottometodo(m,j)){
return true;
}
return false;
}
public static boolean verificadiagonale (int[][]m){
for(int j=0;j
return true;
}
return false;
}
Immagino sia Java. Non conosco Java ma ho una certa esperienza di programmazione con le matrici e ad occhio direi che dovresti testare j+i < m.lenght invece di i < m.lenght.
Nel senso che se i è la riga in cui ti trovi allora esegui l'operazione fino all'ultima riga mentre in questo caso strasbordi quando la colonna esce.
Nel senso che se i è la riga in cui ti trovi allora esegui l'operazione fino all'ultima riga mentre in questo caso strasbordi quando la colonna esce.