Guia de Recursividad Java Parte2 U
Guia de Recursividad Java Parte2 U
Introducción.
Ingresamos a ésta quía con el entendido que ya estudió la primera parte, de ésta
manera entenderá cada ejercicio que se plantea.
Ejemplo 1.- Mediante una función recursiva invertir un número entero (sin
utilizar conversión a cadenas). Ej: n1=1239 salida 9321
public class p1 {
Ejemplo 2.- Escribir una función recursiva que imprima la suma del contenido de
las posiciones pares de un arreglo de números enteros
Guía de Programas recursivos en Java --- Segunda Parte Doc. M.Sc. Irma Prado Pág. 2
Solución.- En éste caso los datos del vector son {1,2,3,12,5,2,7,11}, debido a
que lo importante de ésta pregunta es solo la función. Es otra forma no estándar
de definir un vector. Como el orden de los sumandos no altera el resultado, en
la función recursiva inicia sumando los datos de las posiciones pares de derecha
a izquierda del vector. Otra consideración, es que el arreglo inicia en la
posición 0, entonces si el arreglo tiene 4 elementos las posiciones son 0,1,2,3,
entonces si la dimensión es par, considerando que que la primera posición es
cero, las posiciones pares, a la vista del usuario, son posiciones impares a la
vista del programador.
public class p2 {
import java.util.Scanner;
public class r3 {
Ejemplo 4.- Escribir una funciones recursivas para determinar la posiciones del
menor y mayor elemento contenido en el vector.
Guía de Programas recursivos en Java --- Segunda Parte Doc. M.Sc. Irma Prado Pág. 4
import java.util.Scanner;
public class p4 {
{
x[k-1]=(int)(Math.random()*10); //datos randómicos
genera_vector(x,--k);
}
return(x);
}
}
Ejemplo 5.- Para encontrar el máximo común divisor de a,b, sonde a>b, se procede
de la siguiente manera:
Realice funciones recursivas para encontrar MCD(a,b) cuando a>b ó MCD(b,a) cuando
b>a.
Solución:
import java.util.Scanner;
public class p5 {
int r=x%y;
if(r!=0)
return(MCD(y,r));
return(k);
}
}
Ejemplo 6.- Dado un arreglo de valores constantes con valores únicos, escriba
una función recursiva que halle la posición de un valor buscado.
import java.util.Scanner;
public class p6 {
sn.close();
}
public static int buscar(int v[],int d,int bus,int i)
{ d--;
if(d>=0)
{
if(v[d]==bus){
i=d;
}
return(buscar(v,d,bus,i));
}
return(i);
}
}
import java.io.*;
import java.util.Scanner;
public class p7 {
public static void main(String[] args) {
}
return(r);
}
}
Pregunta 8.- Dada una matriz de caracteres de tamaño NxN, verificar si una
palabra existe en la matriz. Si existe indicar la ruta para construir la
palabra en la matriz. Todos los movimientos son permitidos: arriba, abajo,
izquierda, derecha, diagonales.
Ejemplo:
Palabra “horizon”
Salida:
La palabra existe.
La ruta es:
Guía de Programas recursivos en Java --- Segunda Parte Doc. M.Sc. Irma Prado Pág. 8
0 0 0 0 0
0 1 0 5 0
0 0 2 4 6
0 0 0 3 7
0 0 0 0 0
Solución:
import java.util.Scanner;
return(en1);
}
public static boolean buscar_palabra(String te[][],int nu[][],String p,int tam,int i, boolean en)
{ String le;
Guía de Programas recursivos en Java --- Segunda Parte Doc. M.Sc. Irma Prado Pág. 9