200 likes | 342 Views
Facultad de Ingeniería y Arquitectura. Algoritmo y Estructura de Datos I 2007 - I. Sesión 10. Ing. Juan José Montero Román. jmonteror@usmp.edu.pe. Re cu rs iv id ad. Ejercicio. Función recursiva para cálculo de factoriales. package domApli; import biblioteca.*;
E N D
Facultad de Ingeniería y Arquitectura Algoritmo y Estructura de Datos I 2007 - I Sesión 10 Ing. Juan José Montero Román. jmonteror@usmp.edu.pe
Recursividad Ejercicio Función recursiva para cálculo de factoriales.
package domApli; import biblioteca.*; /* Función recursiva para cálculo de factoriales */ public class PrgRecurs01 { public int factorial(int n){ System.out.println("en metodo: "+n); if(n==1){ return 1; } else{ return n*factorial(n-1); } } public static void main ( String args[] ) { PrgRecurs01 obj = new PrgRecurs01(); int n=LE.leerInt("Ingrese Número: "); int x=obj.factorial(n); LE.mostrarResultado("El factorial de "+n+" es: "+x); } }
Ejercicio Diseñe un programa que reciba un número de 1 dígito y retorne un número formado por los números comprendidos entre 1 y el número ingresado. Ejemplo: si número ingresado es :7 debe mostrar: 1234567
package domApli; import biblioteca.*; /*Diseñe un programa que reciba un número de 1 dígito y * retorne un número formado por los números comprendidos * entre 1 y el número ingresado. Ejemplo: si número ingresado es :3 debe mostrar: 123*/ public class PrgRecurs02 { int numero; public void proceso ( ) { numero=LE.leerInt("Ingrese número"); LE.mostrarResultado("El número formado es:"+calcular(numero)); } public long calcular ( int numero) { System.out.println("en metodo: "+numero); if(numero>1) return numero+10*calcular(numero-1); else return 1; } public static void main ( String args[] ) { PrgRecurs02 obj = new PrgRecurs02(); obj.proceso( ); } }
Ejercicio Diseñe un método recursivo que permita la potencia de un numero A elevado a B
package domApli; import biblioteca.*; /*Diseñe un método recursivo que permita la potencia de un numero A elevado a B*/ public class PrgRecurs03 { public int potencia(int a, int b){ System.out.println("en metodo a: "+a+" b: "+b); if(b==0){ return 1; } else{ return a*potencia(a,b-1); } } public static void main ( String args[] ) { PrgRecurs03 obj = new PrgRecurs03(); int a=LE.leerInt("Ingresa Base"); int b=LE.leerInt("Ingresa Exponente"); int x=obj.potencia(a,b); LE.mostrarResultado(a+" elevado a la "+b+" es: "+x); } }
Ejercicio Ingrese un número y muestre la suma de todos sus dígitos
package domApli; import biblioteca.*; /*Ingrese un número y muestre la suma de todos sus dígitos.*/ public class PrgRecurs04 { public int sumaD(int n){ if(n==0){ return 0; } else{ return n%10+sumaD(n/10); } } public static void main ( String args[] ) { PrgRecurs04 obj = new PrgRecurs04(); int n=LE.leerInt("ingrese Número: "); int suma=obj.sumaD(n); LE.mostrarResultado("El calculo sale: "+suma); } }
Ejercicio Implemente un método recursivo que, dado un numero entero, muestre por pantalla su valor en binario
package domApli; import biblioteca.*; /*Implemente un método recursivo que, dado un numero entero, muestre por pantalla su valor en binario*/ public class PrgRecurs05 { public int sumaD(int n){ System.out.println("en metodo a: "+n); if(n==0){ return 0; } else{ return n%2+10*sumaD(n/2); } } public static void main ( String args[] ) { PrgRecurs05 obj = new PrgRecurs05(); int numero=LE.leerInt("Ingrese Número"); int suma=obj.sumaD(numero); LE.mostrarResultado("El calculo sale: "+suma); } }
Ejercicio ingresar un nombre y mostrar al inicio las vocales de derecha a izquierda y las consonantes al final de izquierda a derecha, ejemplo ingresa: JUANJOSE sale: EOAUJNJS
Ejercicio Implemente un método recursivo que, dado un nombre, lo devuelva al revés
package domApli; import biblioteca.*; /*Implemente un método recursivo que, dado un nombre, lo devuelva al revés.*/ public class PrgRecurs08 { String enviar=""; public String password(String vnombre){ if (vnombre.length()==0){ return enviar; } else{ char letra=vnombre.toUpperCase().charAt(0); enviar=letra+enviar; return password(vnombre.substring(1,vnombre.length())); } } public static void main ( String args[] ) { PrgRecurs08 obj = new PrgRecurs08(); String nombre=LE.leerString("Ingrese Nombre :"); String vnombre=obj.password(nombre); LE.mostrarResultado("El calculo sale: "+vnombre); } }
Ejercicio mostrar las vocales del nombre ingresado, pero al revés, ejemplo: ingresa: JUANJOSE sale: EOAU
package domApli; import biblioteca.*; /*mostrar las vocales del nombre ingresado, pero al revés ejemplo ingresa:JUANJOSE sale:EOAU */ public class PrgRecurs07 { String enviar=""; public String password(String vnombre){ if (vnombre.length()==0){ return enviar; } else{ char letra=vnombre.toUpperCase().charAt(0); if(letra=='A' || letra=='E' || letra=='I' || letra=='O' || letra=='U'){ enviar=letra+enviar; } return password(vnombre.substring(1,vnombre.length())); } } public static void main ( String args[] ) { PrgRecurs07 obj = new PrgRecurs07(); String nombre=LE.leerString("Ingrese Nombre :"); String vnombre=obj.password(nombre); LE.mostrarResultado("El calculo sale: "+vnombre); } }
Ejercicio ingresar un nombre y mostrar al inicio las vocales de derecha a izquierda y las consonantes al final de izquierda a derecha, ejemplo ingresa: JUANJOSE sale: EOAUJNJS
package domApli; import biblioteca.*; /*ingresar un nombre y mostrar al inicio las vocales descendente y las consonantes al final en orden ascendente ejemplo ingresa: JUANJOSE sale: EOAUJNJS */ public class PrgRecurs09 { String enviar=""; public String password(String vnombre){ if (vnombre.length()==0){ return enviar; } else{ char letra=vnombre.toUpperCase().charAt(0); if(letra=='A' || letra=='E' || letra=='I' || letra=='O' || letra=='U'){ enviar=letra+enviar; } else{ enviar=enviar+letra; } return password(vnombre.substring(1,vnombre.length())); } } public static void main ( String args[] ) { PrgRecurs09 obj = new PrgRecurs09(); String nombre=LE.leerString("Ingrese Nombre :"); String vnombre=obj.password(nombre); LE.mostrarResultado("El calculo sale: "+vnombre); } }
package domApli; import biblioteca.*; public class PrgPalindromo { public boolean esPalindromo(String texto){ if(texto.length()==0 || texto.length()==1) return true; else if(texto.charAt(0)==texto.charAt(texto.length()-1)) return esPalindromo(texto.substring(1,texto.length()-1)); else return false; } public static void main(String[] args) { PrgPalindromo obj=new PrgPalindromo(); String texto=LE.leerString("Ingrese Texto a Evaluar"); LE.mostrarInformacion(texto+" es palindromo: " + obj.esPalindromo(texto.toUpperCase())); } }
package domApli; import biblioteca.*; public class PrgSubStr { public static void main(String[] args) { String texto; int tamaño; texto=LE.leerString("el texto es: "); tamaño=texto.length(); System.out.println(texto+" tamaño: "+tamaño); int n=LE.leerInt("cuanto se extrae"); texto=texto.substring(1,n); tamaño=texto.length(); System.out.println(texto+" tamaño: "+tamaño); } }