CÓDIGO:
#includedouble 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!! ^_^
Te pongo tres puntos en el lab por esta entrada.
ResponderEliminar