Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/09/2007, 13:06
moyka
 
Fecha de Ingreso: septiembre-2007
Mensajes: 2
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Rcursividad en ANSI C

Cita:
Iniciado por Instru Ver Mensaje

int(funcion(int numero)
{
if(numero==0)
return 1;
else
return numero*funcion(numero-1);
}
Hola,
hombre en ese caso no haría falta llegar hasta cero, al llegar a 1 ya puedes parar la recursión.

Otro buen ejemplo puede ser el de realizar una potencia de un número de forma recursiva, lo más importante en la recursividad es encontrar el caso base, una vez encontrado (como en el ejemplo anterior del factorial), todo va ya sobre ruedas.


En el ejemplo de la potencia de un número, el caso base es cuando el exponente es 1, todo número elevado a 1 es igual a dicho número, así que en esta función, decrementaremos el exponente en una unidad hasta llegar a uno.

Lo único que resta para tener la función completa es ver el número con el que operar en la llamada recursiva, es decir, en este caso multiplicaremos cada llamada recursiva por el número a elevar.

Sería así:

Código:
int elevar(int base,int exponente){
    if(exponente == 1)
       return 1;
    return (elevar(base,exponente-1)*base);
}
Espero haberte ayudado un poco, si necesitas más ejemplos mándame un privado.
Un saludo.