Java - Transformar código iterativo a recursivo

 
Vista:
sin imagen de perfil

Transformar código iterativo a recursivo

Publicado por Alejandro (14 intervenciones) el 10/03/2017 01:28:39
Buenas tardes, tengo una problemática al no poder transformar el siguiente código iterativo a recursivo. He intentado por días y hasta ahora no lo he logrado, agradecería que me ayudaran con mi problema.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static void calculaSerie(int num){
        int i=1,den=1;
        String signo;
        while(i<=num){
            if (i%2==0){
                signo="+";
            }else{
                signo="-";
           } if(i==num){
                signo=" ";
 
            muestraSerie(den,signo);
            den+=2;
            i++;
          }
}
 
static void muestraSeriel(int den,String signo)
    {
        System.out.print(1+"/"+den+" "+signo+" ");
    }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Transformar código iterativo a recursivo

Publicado por ctmy (47 intervenciones) el 10/03/2017 19:12:42
Para empezar, seria bueno aclarar que tipo de resultado estas buscando. Por otro lado tenes un ciclo(loop) infinito porque la variable "i" no esta siendo incrementada.

Si te fijas, el ultimo if esta completamente separado de los otros y compara si "i" es igual a "num" y si es verdad estas incrementando la variable "i". Eso nunca va a ocurrir porque "i" sigue siendo 1.

Con la informacion que hay, la estructura seria mas o menos asi.

1
2
3
4
5
6
7
// No es codigo de verdad
calculaSerie(num){
  if(num == 1)
  return algo //salir de la recursion actual
 
  calculaSerie(num-1)
}


ctmy-dev.appspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar