ejercicios basicos para recursividad en java

Iniciado por .rn3w., 27 Marzo 2011, 19:28 PM

0 Miembros y 2 Visitantes están viendo este tema.

.rn3w.


                 EJERCICIOS EN POO Y RECURSIVIDAD EN JAVA


aka les dejo para que lo analicen estos codigos de recursividad
se trata de recursividad por la forma de deduccion



public int cancer(int n){
  int res=0;
   if(n==1){
       res=1;
   }
   else{
       res=n+cancer(n-1);
   }
return res;
}





public int cancer(int n ){
      int res=0;
        while(n>0){
       res=res+n;
       n=n-1;
        }
        return res;
    }



public int cancer2(int n){
int res=0;
if(n==1){
res=1;
}
else{
res=cancer2(n-1)+n+n-1;
}
return res;
}


espero que les aya interesado
si no entienden me preguntan sus dudas porfa
o mas bien poner algun metodo aca en este tema y asi colaborarnos entre colegas
jajaj bye y suerte

Tryptophan

#1
La función cancer devuelve una suma, cuyos resultados a medida que el "n" va "creciendo" sigue el orden ascendente de los naturales.
Digo:

0 -> 0
1 -> 1
2 -> 3
3 -> 6
4 -> 10

Entre 0 y 1 la diferencia es 1, entre 1 y 2 la diferencia es 2, entre 2 y 3 la diferencia es 3 y así sucesivamente...

.rn3w.

bueno yo ota vez les dejo aka dos ejercicios mas solo para novatos por faaaaaa

public int divisorCociente(int n, int div){
        // devuelve el cociente de una division
        int res=0;
        if(n< div){
            res=0;
        }
        else{
            res=divisorCociente(n-div, div)+1;
       
        }
        return res;
   
    }
    public int residuo(int n, int div){
        //devuelve el residuo de una division
        int res=0;
        if(n<div){
            res=n;
        }
        else{
        res=residuo(n-div,div);
        }
        return res;
    }


si te caes alguna ves y piensas que estas acabado pues lo estas y si no que esperas para levantarte "animo"

.rn3w.

    public int elevado(int a,int b ){
        // devuelve el resultado de "a" a la potencia b sin
        // utilizar la potencia
    int res=0;
    if(b==0){
    res=1;
    }
    else{
    res= elevado(a,b-1)*a;
    }
    return res;
    }
    public int multiplicar(int a, int b){
    int res=0;
    if(a==0 || b==0){
    res=0;
    }
    else{
        res=multiplicar(a,b-1)+a;
        // ojo en "+a" eso es lo que agarra cada ves que vuelve al metodo
    }
    return res;
    }

bueno aka yo devuelta para responder todas sus dudas de solo novatos

bye bye

Shell Root

Quizás se pueda suplir con esto, no entiendo, ¿Para que haces esto?
Código (java) [Seleccionar]
   public static int sPoW( Integer num, Integer exp )
   {
     /*
      * Funcion que devuelve la
      * potencia de un numero,
      * sin usar la libreria Math.
      */
      Integer sReturn = 1;
      if( exp == 0 ){ return 1; }
      for(Integer i=0; i<exp; i++){ sReturn *= num; }
      return sReturn;
   }
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

.rn3w.

hola a todos de nuevo

espero que leas esto Shell Root buenoo lo que pude observar en el codigo que enviaste es un codigo de programacion POO mientras que el codigo que yo utilizo es netamente RECURSIVIDAD y la recursividad tiene dos formas de hacerlas
la forma 1 es deduccion y la 2 es induccion

pero me gusto mucho tu codigo es muy bueno espero que me hayas entendido bye bye

.rn3w.

#6
bueno aky hayyyyy mas ejerccios

public int cantDigPares(int n){
   int res=0;
   if(n<10 && n==2 || n==4 || n==6||n==8){
   res=1;
   }

   else if((n%10)%2==0){
   res= cantDigPares(n/10)+1;
   }
   else{
   res= cantDigPares(n/10);
   }
   return res;
   }



.mokk.

Bueno antes que nada gracias ahora empiezo a comprender mejor, lo que es la recursividad.
Ultimamente nos han pedido trabajos usando recursividad, pero como para mi no la entendia lo hacia sin ser recursivo y pues los programas me han andado y todo, entonces a lo que viene mi pregunta ¿En que casos es bueno usar la recursividad?, ya que para mi es mucho mas sencillo hacerlo sin ser recursivo puesto que nose muy bien manejarlo, y aun asi he tenido mejor trabajo sin ello y pues aveces me pongo a pensar de que me sirve la recursividad, ya que pocas veces la he usado, ahi si me podrias hechar una mano en ello gracias n_n, asi como Shell Root la mayoria de mis codes los hago de esa forma jeje.


Sayo*! n_n

P.D. Para mi no importa que sea recursivo o no, simplemente con que mi programa cumpla de forma efectiva  su objetivo con ello me doy mas que satisfecho, pero tambien deseo saber el porque usar recursividad y en que casos jeje

.rn3w.


hola disculpa el retraso de mi respuesta es que ultimamente estoy sin tiempo

bueno yo tambien soy estudiante de informatica

  mi punto de vista sobre la recursividad es que ocupa mucho tiempo en memoria
  pero es otro modo muy interesante de programar y aveces es mucho mas sencillo
por ejemplo:
en un codigo de POO tienes que hacer muchas restricciones para un problema mientras en recursividad solo lo deduces (supones que funcionara) y funciona

la proxima semana pondre mas ejercicios de las cuales seran en POO y los mismos en  recursividad y ahi veras que aveces en mejor pero vuelvo a repetir no es muy economico en memoria bye bye hasta la proxima'''''''''

y gracias por tu comentario...........

.mokk.

wow gracias n_n, espero ver los otros ejercicios, aunque ahora empiezo a entender mejor lo que es la recursividad aunque si fue algo que empece a ver que el llamarse a si mismo seria mas memoria como lo que vendria siendo en unos textos que lei sobre en linux el overflow usando fork.