Posteado por: [p3ll3] | enero 20, 2008

Codigos Recursivos (recursividad) en Java

Codigos Recursivos en Java

>>Primero que todo hay que saber que es recursividad :

Segun wikipedia recursividad es: la forma en la cual se especifica un proceso basado en su propia definición. Siendo un poco más precisos, y para evitar el aparente círculo sin fin en esta definición, las instancias complejas de un proceso se definen en términos de instancias más simples, estando las finales más simples definidas de forma explícita.

Bueno y hablando en castellano recursion seria un metodo que se llama a si mismo para resolver un problema, tiene uno o varios puntos base.
La recursion nos permite invocar a un metodo o a otro para resolver un problema.
Cuando un metodo llama a otro para resolverse se llama recursion indirecta.

Si quieren informacion especifica acerca de recursion consulten al
Oraculo de google: recursividad

Aqui les dejo un codigo con dos ejemplos basicos acerca de que es recursion:

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);

}
}
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);

}
}

}

Aqui les dejo algo de recursion indirecta para saber si un numero es par o impar :

import java.io.*;

public class RecursionIndirecta{

public static BufferedReader entrada=new BufferedReader (new InputStreamReader(System.in)); //Todo esto va en una sola linea.

public static void main (String[ ] args)throws IOException{

System.out.println(“\n”);
System.out.print(“Digite el numero para saber si es par o impar: “);

int n = Integer.parseInt(entrada.readLine());
boolean EsPar = Es_par(n);

if (EsPar == true){

System.out.println(“\nEl numero “+n+” es par”);

}
if (EsPar == false){

System.out.println(“\nEl numero “+n+” es impar”);

}
}
public static boolean Es_par(int n){

if (n==0){

return true;

}else{

return impar(n-1);

}
}
public static boolean impar(int n ){

if ( n==0 ){

return false;

}else{

return Es_par(n-1);

}

}

}



Saludos………………………….. 8)
[p3ll3]

Anuncios

Responses

  1. hola gracias

  2. gracias por los ejemplos, aunque si no es mucho pedirte me gustaria pedirte que pudieras comentar tu codigo, algunos como yo no programamos ni pico en java pero la facu nos pide y ps no nos queda de otra

  3. mil gracias


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: