CÓDIGO:
#include
double potencia (int x, int y) {
double resultado;
if(y == 0)
resultado = 1;
else
resultado = x * potencia(x,y-1);
return resultado;
}
int main(void) {
int base=0, exponente=0;
printf("\t\tPROGRAMA PARA CALCULAR UNA POTENCIA\n\n");
printf("Dame el valor de la base -> ");
scanf("%d", &base);
printf("Dame el valor del exponente -> ");
scanf("%d", &exponente);
printf("%d elevado a %d es = %f", base, exponente, potencia(base, exponente));
return 0;
}
¿Cómo funciona el código?
Éste es el bloque recursivo:
double potencia (int x, int y) {
double resultado;
if(y == 0)
resultado = 1;
else
resultado = x * potencia(x,y-1);
return resultado;
}
Variables tipo double para evitar algún desbordamiento. La función recibe 2 parametros:
int x = Base de la potencia
int y = Exponente de la potencia
Necesitamos otra variable double que será la que almacenara el resultado.
Es caso base es if (y==0)
Supongamos = 5^5 , entonces:

En este punto el caso base se cumple puesto que el exponente ( y ) es cero
double potencia (5, 0) {
double resultado;
0 == 0 (SE CUMPLE EL CASO BASE)
REGRESA 1;
Ahora cada subrutina comenzara a resolverse con el valor la anterior le regresa y asi llegaremos al resultado

DESCARGA: Potencia.c
SALUDOS!! ^_^
No hay comentarios:
Publicar un comentario