Cargando la página...

problema con return java

Por Adrian de vil el 23 de octubre de 2011 en los siguientes foros: Java

problema con return java

Avatar de Adrian de vil
con el siguiente codigo que calcula si una matriz es simetrica o no de forma recursiva existe un erroe que hace que me devuelva siempre true pero por mas que pienso no veo que error es

public static boolean recusiva(int[][] m) {

if ( (i < m.length) && (j < m[i].length)){
i++;
j++;
if (m[i][j] != m[j][i]){
return false;

}

}
return true;
}

Respuestas

1
03
noviembre
2011
Avatar de Damián

Damián 0 puntos

Hola, por empezar la función que muestras no es recursiva, las funciones recursivas son aquellas que se invocan a si mismas y esta no lo hace por lo que solo compararás una vez.
Si tienes que ir recorriendo la matriz recursivamente, los índices debrían ir pasandosé como parámetro incrementándose en cada entrada de la recursión, el primer llamado lo harias por ejemplo recursiva(m,0,0) y luego deberías ir llamando con las variables incrementadas, recursiva(m,1,0);recursiva(m,2,0)...etc.
Piénsalo un poco y te saldrá facilmente. Por otro lado ten en cuenta la definición de matriz simétrica, no deberías comparar m[i][j] cuando i=j.
Se entiende algo?, piénsalo....

Tema cerrado por inactividad mayor a 90 días