Ir al contenido principal

Un Pequeño Algoritmo Recursivo :)

Este es un pequeño code que realice para un post del foro.elhacker.net en la sección de Programación-Programación General-Ejercicios donde faltaba por solucionar el siguiente problema:

Cita de ohk: Programar un algoritmo recursivo que permita resolver la siguiente matriz:

1 1 1 1 1
1 2 2 2 2
1 2 4 4 4
1 2 4 8 8
1 2 4 8 16

Pues bien aca comparto la solución que hice para el problema (Java):



public class MatrizRecursividad {

  private static int a=0, aux=1, b=0;
  private static int[][] matriz = new int[6][6];

  public static void main(String[] args) {

      llenarMatriz(matriz, a, b);
      imprimir();
  }

  public static void llenarMatriz(int matriz[][], int i, int j){

      if(j > matriz.length -1){
          i++;
          j=0;
          aux++;
      }
      if(i <matriz.length){

          if(i==(aux-1) && j >= (aux-1)){
              if(i==0)
                  matriz[i][j] = aux;
              else
                  matriz[i][j] = matriz[i][i-1]*2;
              llenarMatriz(matriz, i , j+1);
          }
          else{
              if(j==0)
                  matriz[i][j] = j+1;
              else
                  matriz[i][j] = matriz[i-1][j];
              llenarMatriz(matriz, i, j+1);
          }
      }
  }

  public static void imprimir(){

      for(int i=0; i< matriz.length; i++){
          for(int j=0; j< matriz.length; j++){
              System.out.print(matriz[i][j] + " ");
          }
          System.out.print("\n");
      }
  }
}

Cualquier duda respecto al código no duden en preguntar :).

Link del post: aquí

Comentarios

Ky.Hell ha dicho que…
como logroo hacer esta matriz recursivamente en javaa

*matriz [n*(n+1)]:

1 17 13 9 5
6 2 18 14 10
11 7 3 19 15
16 12 8 4 20

el llenado d esta matriz es asi...(1.1)...(2.2)...(3.3)...(4.4) para luego saltarsee a la siguiente casilla desocupada (1.5)...(2.1)..(3.2)...y asi sucesivamente ???

Entradas populares de este blog

Nota final del blog

Desde la última vez que publiqué una nota en el blog publicando algun tutorial de mi autoria o algún tema en especifico he recibido muchos comentarios por interno de personas que me solicitan resubir los archivos, lo cual es normal debido al tiempo que ha pasado desde entonces, pero en cierta manera es gratificante ver mensajes  de agradecimiento de personas a quienes les ha servido mucho en su aprendizaje lo tutoriales que pude realizar de ingeniería inversa o de programación básica. Después de todos estos años solo logré encontrar algunos de los archivos que estaban presentes en el blog y los volvi a subir para que puedan descargarlos. También debo decir que este blog ya no va más. He tenido algunos inconvenientes y cambios en temas personales por lo cual el reversing ya no es una de mis actividades. Les agradezco a todos los que han dejado sus comentarios positivos a lo largo de los años que ha estado online el blog y muy orgulloso de ver que a muchos les ha ayudado mis pequeños

Invertir una lista sencilla en Java

Bueno dejo un pequeño método en Java que hice para un trabajo de la Universidad, lo que hace es invertir una lista sencilla a través de nodos. Primero hay que tener en cuenta que el mundo del problema posee dos clases, una llamada Region.java y otra Colombia.java la cual tiene la lista de regiones y tambien una referencia a la primera Región , cada Región tiene una referencia a la siguiente Región y así sucesivamente hasta la ultima y formar la lista.

[SRC] Compresor de Archivos Huffman

Después de unos días sin publicar he vuelto otra vez y quiero mostrar esta vez una de las tareas que nos pusieron este semestre en la universidad programando en java. Se trata de implementar el algoritmo de compresión Huffman , para quien no sepa de que se trata, en este link se explica que es esto, pero para ahondar un poco les cuento que se trata primero de generar una lista enlazada con los bytes del archivo y sus frecuencias ordenada de menor a mayor y luego con esta se procede a formar un arbol binario de frecuencias donde los bytes que tengan mayor aparición en el archivo o texto a comprimir (en este caso solo es para archivos y no tan largos :P) se encontraran a mayor altura.