martes, 6 de septiembre de 2011

Ejemplo de Recursividad

Recursividad de un numero Factorial y Pontencia

Este Es un ejemplo de la recursividad en java:


import java.io.*;
public class Recursion{
public static BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
public static void main(String[ ] args)throws IOException{
Menu();
}
public static void Menu()throws IOException{
System.out.println(“\n”);
System.out.println(“^_^_^_^_^_^_^_^_^_^_^_^_^_^_^”);
System.out.println(” 1- Factorial de un numero “);
System.out.println(” 2- Potencias “);
System.out.println(“^_^_^_^_^_^_^_^_^_^_^_^_^_^_^”);
System.out.print(“Opcion : “);
int opc = Integer.parseInt(entrada.readLine());
Opciones( opc ); // @ver >> metodo opciones
}
public static void Opciones (int o)throws IOException{
switch( o ){
case 1: Factorial();
break;
case 2: Potencia();
break;
default: System.exit(1);
break;
}
}
public static void Factorial()throws IOException{
System.out.print(“Digite el numero al que desea calcular su factorial: “);
int n = Integer.parseInt(entrada.readLine());
int r = factorial(n);
System.out.println(“El factorial de “+n+” es “+r);
Menu();
}
public static int factorial(int n)throws IOException{
if ( (n==0) || (n==1) ){
return 1;
} else{
return n*factorial(n-1); // Esta es la Recursividada Esta Llamando al mismo metodo
}
}
public static void Potencia()throws IOException{
System.out.print(“Digite la base: “);
int b = Integer.parseInt(entrada.readLine());
System.out.print(“Digite el exponente: “);
int p = Integer.parseInt(entrada.readLine());
int r = potencia(b,p);
System.out.println(“El resultado de elevar “+b+” al”+p+” es: “+r);
Menu();
}
public static int potencia(int b,int p)throws IOException{
if (p == 0){
return 1;
}
if (p == 1){
return b;
}else{
return b * potencia( b , p-1); //Esta es la Recursividada Esta Llamando al mismo metodo
}
}
}