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.
Comentarios