You are on page 1of 2

Para empezar con lo que es la recursividad, sepamos primeramente que es, se trata mas

que nada de un mtodo que se mande a llamar a si mismo, ya sea una(Recursividad Simple)
o mas veces(Recursividad Mltiple) haciendo un reemplazo de mtodos directos como
formulas que mas adelante les demostrar.

Ahora empezamos con algo sencillo, supongamos que queremos hacer una suma sucesiva
del mismo nmero, la cul esta operacin equivaldr a la multiplicacin.

El mtodo para realizar una multiplicacin podra ser de la siguiente manera:

public static void multiplicacion(int a,int b){


//Recuerdese que "int a" e "int b", son parametros que recibe el mtodo y que muy
posiblemente los ocupar segn el cdigo escrito.

System.out.println(a*b);
//Como se marca con negritas "a*b", es la operacin de multiplicacin que se esta mandando
a imprimir en pantalla directamente

//Ahora bien, para probarlo basta solo un par de lineas de cdigo para ejecutarlo desde el
main, como les muestro a continuacin:

Como se dan cuenta ya mando valores estticos de 2 y 5, mostrando como resultado 10. (duh)
mandandolo de esa u otras formas similares, se supone de forma iterativa, ahora hagamoslo
de multiplicacin a suma sucesiva usando un ciclo FOR.

Como pueden ver, uso el FOR para hacer una suma sucesiva tomando 'a' como las veces que
sumare 'b' en 'R' inicializada en cero

Pero esas dos fueron de forma Iterativa, ahora hagmonos de manera recursiva.

Para esto, es necesario entender que tenemos que hacer una idea sobre como funciona la
recursiva, primero les muestro en cdigo y despus desgloso parte por parte para que
entiendan de algn modo el como funciona la recursividad.

dijo:public static int sumasucesiva(int a,int b){


if(a>1){
return incog(a-1,b)+b;
}else{
return b;
}
}[/quote]

Aqui arribita citando, esta el cdigo.

Nota:
La recursividad tambien de cierta forma es un ciclo porque necesita marcarse su limite.

Revisando el cdigo, vemos que tambin recibe 2 parmetros 'a' y 'b', y si lo notan, hay
condicional If/Else los cuales servirn para marcar el limite del ciclo. Mientras 'a' sea mayor
que 0, entonces se retorna el mismo mtodo MAS 'b', aplicando la recursividad por llamarse
a si mismo, y con los parmetros son (a-1,b), para ir descontando 'a' y no hacerlo infinito.

1*-Suponiendo que los valores recibidos en la funcin es a=4 y b=3, entonces el mtodo
retorna al mismo mtodo mas 'b' , pero con los parmetros del mtodo en el retorno de (a-1,b)
osea, (3,3).

2*-Se manda los parmetros tales que a=3 y b=3, entonces sue vuelve a llamar a si mismo.

3*-Y esta vez es a=2 y b=3.

4*-Por ultima vez se repite el proceso y entonces a=1 y b=3 , Ahora que se trata de llamar a si
misma la funcin, no cumple con la condicional If ya que a=1 y b=3 , haciendo referencia ala
condicin "a>1" no se cumple, entonces aplica el Else, regresando el puro valor de 'b'.

Contando las veces que fueron, son 4 veces las que se sumaron, por lo cual se puede notar
que 'a' sirvi de contador.

Aqu les muestro el cdigo levemente modificado para que aparezcan en pantalla ciertos
detallitos que reconocern a lo antes mencionado.

You might also like