Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: felix en 11 de Abril 2014, 02:34
-
por fa ayuda, mi pregunta es como puedo recorrer una matriz por ejemplo de 3x3 sin usar for ni while osea de forma recursiva le intente de todo no me sale por ejemplo se tiene es ta matriz
1 2 3
2 1 4
5 3 1
lo que quiero es saber cuantas veces aparece el uno y me retornaria 3 por fa ayuda es de forma recursiva gracias de antemano.
-
La recursión es algo relativamente complejo de entender, sobre todo para personas que no están habituadas a trabajar con ella. Aquí tienes un código de ejemplo sobre cómo recorrer recursivamente un array de una dimensión (un arreglo o matriz de una dimensión). Faltaría completar el recorrido de una matriz de dos dimensiones, la idea sería seguir el mismo patrón pero aplicarlo a dos dimensiones. Saludos.
import java.util.Arrays;
/*Ejemplo aprenderaprogramar.com*/
public class ejemplo {
public static void main (String[] Args) {
int[][] matriz= new int[3][3];
matriz[0][0] = 1; matriz[0][1] = 2; matriz[0][2] = 3;
matriz[1][0] = 2; matriz[1][1] = 1; matriz[1][2] = 4;
matriz[2][0] = 2; matriz[2][1] = 1; matriz[2][2] = 4;
System.out.println ("Recorrido iterativo\n");
for (int i=0; i<matriz.length; i++) {
for (int j=0; j<matriz[0].length; j++){
System.out.print (" " + matriz[i][j]);
}
System.out.println ("");
}
System.out.println ("\n\n");
System.out.println ("Recorrido recursivo de un array simple");
int[] dataarray = new int [7];
dataarray[0] = 1; dataarray[1] = 5; dataarray[2] = 7; dataarray[3] = 5; dataarray[4] = 9; dataarray[5] = 5; dataarray[6] = 1;
recorridoRecursivo(dataarray, 0, 5);
System.out.println ("");
recorridoRecursivo(dataarray, 0, 1);
System.out.println ("");
recorridoRecursivo(dataarray, 0, 7);
}
public static void recorridoRecursivo (int[][] matrix) {
// FALTA EL CÓDIGO
}
public static void recorridoRecursivo (int[] matrix, int contador, int buscado) {
if (matrix[matrix.length-1] == buscado) { contador = contador + 1; }
if (matrix.length == 1) {
System.out.println ("El numero de apariciones de " + buscado + " es: " + contador);
System.out.print ("" + matrix[0]);
}
else {int[] tmp = Arrays.copyOf (matrix, (matrix.length-1));
recorridoRecursivo(tmp, contador, buscado);
System.out.print ("-->" + matrix[matrix.length-1]);
}
}
}