Foro de elhacker.net

Programación => Java => Mensaje iniciado por: trueno_dp en 15 Junio 2011, 20:18 pm



Título: recursividad
Publicado por: trueno_dp en 15 Junio 2011, 20:18 pm
Hola, no sé si estoy en el foro adecuado, pero estoy liao con java y la recursividad m mata, tengo que encontrar los divisores de un entero de forma recursiva y no tengo ni idea, tengo echo algo, pero vamos que no m funcion, a ver si alguien me puede ayudar gracias.


 public static int recursividad(int numero){
   
     if(numero>2)
     {
       
        return 0;
     }else
     {
   
      
       return recursividad(numero%numero-1);
    }
 
  }


Título: Re: recursividad
Publicado por: bengy en 15 Junio 2011, 22:23 pm
espero que te sirva es orientado a objetos pero lo podrias cambiar el code
a recursividad vale bye
Código:
public ArrayList<Integer> divisores(int numero){
    int cociente=1;
    int copia= numero/2;
   
   ArrayList<Integer>  arreglo= new ArrayList<Integer> ();
       while(cociente<= copia){
        if(copia%cociente==0){
            arreglo.add(cociente);
        }
        cociente++;
        }
        arreglo.add(numero);
    return arreglo;
    }


Título: Re: recursividad
Publicado por: bengy en 15 Junio 2011, 22:50 pm
solo ve el caso base y la parte recursiva


Título: Re: recursividad
Publicado por: trueno_dp en 16 Junio 2011, 00:07 am
pffff no me entero, perdona!!!
Gracias de todas maneras


Título: Re: recursividad
Publicado por: barbieturico en 16 Junio 2011, 09:20 am
Lo primero, la condición para que una función sea recursiva es que se llame a sí misma.
Para hacer lo que dices es bastante fácil, aquí lo tienes hecho con recursividad:

Código
  1. public class Test {
  2.    public static java.util.List<Integer> divisores = new java.util.ArrayList<Integer>();
  3.    public static void recursivo(int numero, int i)   {
  4.            if(i>0 && numero%i==0) {
  5.                divisores.add(new Integer(i));
  6.                System.out.println(i);
  7.            }
  8.            i++;
  9.            if(i<=numero) Test.recursivo(numero, i);
  10.    }
  11.    public static void main(String[] args) throws IOException {
  12.            Test.recursivo(1125,1);
  13.    }
  14. }
  15.