2 abr. 2009

4 Mini-Algoritmos Recursivos para pasar el tiempo.

Son simplemente 4 pequeños algoritmos recursivos que pretenden ahondar problemitas comunes que se harían perfectamente con un ciclos, pero aquí implementados con recursividad.


1. Sumar los numeros pares de una matriz:

  public int sumar(int i, int j){

      if(i >matriz.length-1)
         return 0;
     else{
         if(j > matriz.length-1 ){
             j=0;
             i++;
             return sumar(i,j);
         }else{
             if(matriz[i][j] %2==0)
                 return matriz[i][j] + sumar(i,j+1);
         }
     }
     return sumar(i,j+1);
  }



2. Determinar si una palabra es Palíndroma:

  public boolean palindroma(String palabra, int i, int j){

     if(i != (palabra.length()/2)){
         if(palabra.charAt(i) == palabra.charAt(j))
             return palindroma(palabra, ++i, --j);
         else
             return false;
     }
      return true;
  }


3. Sumar los digitos de un numero entero:

  public int sumaNum(int num){
     if(num==0)
         return 0;
     else
         return num%10 + sumaNum(num/10);
  }


4. Sumar el borde de una matriz de enteros:

  public int sumaBorde(int i, int j){

     if(i >matriz.length-1)
         return 0;
     else{
         if(j > matriz.length-1 ){
             j=0;
             i++;
             return sumaBorde(i,j);
         }else{
             if((i==0) || (i==matriz.length -1) || (j==0) ||(j==matriz.length -1))
                 return matriz[i][j] + sumaBorde(i,j+1);
         }
     }
     return sumaBorde(i,j+1);
  }

Bueno espero se entiendan, aunque son muy sencillos la verdad.

Salu2.

0 comentarios: