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);
}
}
espero que te sirva es orientado a objetos pero lo podrias cambiar el code
a recursividad vale bye
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;
}
solo ve el caso base y la parte recursiva
pffff no me entero, perdona!!!
Gracias de todas maneras
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:
public class Test {
public static java.util.List<Integer> divisores = new java.util.ArrayList<Integer>();
public static void recursivo(int numero, int i) {
if(i>0 && numero%i==0) {
divisores.add(new Integer(i));
System.out.println(i);
}
i++;
if(i<=numero) Test.recursivo(numero, i);
}
public static void main(String[] args) throws IOException {
Test.recursivo(1125,1);
}
}