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.