elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: [1]
1  Programación / Java / De iteración a recursividad en: 17 Noviembre 2016, 23:15 pm
Hola, qué tal? Estoy tratando de pasar este ciclo do while a forma recursiva pero aún no me he podido.

Código
  1. do {//Loop1
  2.       System.out.println("Filsalida: " + Variable.filsalida + ". Colsalida: " + Variable.colsalida + ". i= " + i + ",j=" + j + ". camino[i][j]=" + camino[i][j] + ". c=" + c);
  3.       if (camino[i][j] == c && j == Variable.filsalida && i == Variable.colsalida) {
  4.               encontrado = true;
  5.       } else if (camino[i][j] == c) {
  6.              System.out.println("Entro!");
  7.              if (i + 1 < Variable.grande + 1) {
  8.                  if (camino[i + 1][j] == -8) {
  9.                        camino[i + 1][j] = c + 1;
  10.                  }
  11.              }
  12.              if (j + 1 < Variable.grande + 1) {
  13.                   if (camino[i][j + 1] == -8) {
  14.                       camino[i][j + 1] = c + 1;
  15.                   }
  16.              }
  17.              if (i - 1 > -1) {
  18.                  if (camino[i - 1][j] == -8) {
  19.                       camino[i - 1][j] = c + 1;
  20.                  }
  21.              }
  22.              if (j - 1 > -1) {
  23.                  if (camino[i][j - 1] == -8) {
  24.                       camino[i][j - 1] = c + 1;
  25.                  }
  26.              }
  27.        }
  28.        //Mostrar(i, j); i = j = 0;
  29.        for (int k = 0; k < Variable.grande + 1; k++) {
  30.             for (int l = 0; l < Variable.grande + 1; l++) {
  31.                  System.out.print(camino[k][l] + " | ");
  32.             }
  33.             System.out.println("");
  34.        }
  35.        //FinMostrar
  36.  
  37.        j++;
  38. } while (j < Variable.grande + 1 && !encontrado);


Esto es lo que tengo:

Código
  1. public void Loop1(int i, int j, int c, boolean encontrado) {
  2.        if (j < Variable.grande + 1 && !encontrado) {
  3.            System.out.println("Filsalida: " + Variable.filsalida + ". Colsalida: " + Variable.colsalida + ". i= " + i + ",j=" + j + ". camino[i][j]=" + camino[i][j] + ". c=" + c);
  4.            if (camino[i][j] == c && j == Variable.filsalida && i == Variable.colsalida) {
  5.                encontrado = true;
  6.            } else if (camino[i][j] == c) {
  7.                System.out.println("Entro!");
  8.                if (i + 1 < Variable.grande + 1) {
  9.                    if (camino[i + 1][j] == -8) {
  10.                        camino[i + 1][j] = c + 1;
  11.                    }
  12.                }
  13.                if (j + 1 < Variable.grande + 1) {
  14.                    if (camino[i][j + 1] == -8) {
  15.                        camino[i][j + 1] = c + 1;
  16.                    }
  17.                }
  18.                if (i - 1 > -1) {
  19.                    if (camino[i - 1][j] == -8) {
  20.                        camino[i - 1][j] = c + 1;
  21.                    }
  22.                }
  23.                if (j - 1 > -1) {
  24.                    if (camino[i][j - 1] == -8) {
  25.                        camino[i][j - 1] = c + 1;
  26.                    }
  27.                }
  28.            }
  29.            int k, l;
  30.            k = l = 0;
  31.            Mostrar(k, l);
  32.            Loop1(i, j + 1, c, encontrado);
  33.        }
  34.    }

Si alguno(a) me podría decir en dónde puede estar mi error, se los agradecería, por favor! Este ciclo va dentro de otros do while pero cuando trato de reemplazar con lo recursivo no me produce el mismo resultado.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines