Título: Calcular potencia con recursividad Publicado por: sora_ori en 8 Junio 2015, 21:00 pm Hola compañeros, estoy un poco confuso en como puedo realizar el siguiente ejercicio.
Tengo la siguiente función y tengo que calcular la potencia de forma recursiva: función(x,n): 1 si n = 0 x si n = 1 (x^(n/2))^2 si n es par, n>1 x*(x^((n-1)/2))^2 si n es impar, n>2 Y bueno dejaré mi pobre código esperando un poco de ayuda :rolleyes: :rolleyes: Código
Título: Re: Calcular potencia con recursividad Publicado por: Stakewinner00 en 8 Junio 2015, 21:32 pm Sin mirar mucho hay dos cosas que claramente están mal
Citar 1 si n = 0 Citar if (n == 0) return 0; aquí haces lo contrario, si n == 0 tendrías que devolver 1 no 0.Y una función recursiva debe llamarse a si misma, y tu función potencia no lo hace, no es recursiva. Título: Re: Calcular potencia con recursividad Publicado por: sora_ori en 8 Junio 2015, 21:47 pm Gracias Stakewinner, lo voy entendiendo solo que al ver esa formula se me esta complicando.
Entonces ahora me quedaría así: Código
Título: Re: Calcular potencia con recursividad Publicado por: ivancea96 en 8 Junio 2015, 22:18 pm Mucho cuidado. Ahí es todo erróneo: El operador ^ en C y C++ no es potencia. Es el operador a nivel de bit XOR.
No hay un operador potencia para tipos básicos. Título: Re: Calcular potencia con recursividad Publicado por: user-marcos en 8 Junio 2015, 22:41 pm Puedes usar:
Código
Título: Re: Calcular potencia con recursividad Publicado por: sora_ori en 8 Junio 2015, 23:05 pm Gracias a todos por vuestra respuestas!
He conseguido terminarlo pero creo que no como me pide el ejercicio. Código
Título: Re: Calcular potencia con recursividad Publicado por: ivancea96 en 8 Junio 2015, 23:25 pm Código: funcion(x,n): 1 si n = 0 x si n = 1 (x^(n/2))^2 si n es par, n>1 x*(x^((n-1)/2))^2 si n es impar, n>2 Puedes hacerlo como dice el ejercicio. en vez de K^2, puedes poner K*K, y las demás potencias, las haces recursivamente. Try it. Título: Re: Calcular potencia con recursividad Publicado por: sora_ori en 8 Junio 2015, 23:38 pm Gracias ivancea, pero no te he entendido, es decir, yo lo he conseguido hacer haciendo base * potencia(base, exponente -1) y en el ejercicio me lo pide de otras formas.
Saludos Título: Re: Calcular potencia con recursividad Publicado por: Regexp en 8 Junio 2015, 23:56 pm Gracias ivancea, pero no te he entendido, es decir, yo lo he conseguido hacer haciendo base * potencia(base, exponente -1) y en el ejercicio me lo pide de otras formas. Saludos Hola sora_ori, creo el ejercicio se basa en manejar bien los operadores aritméticos y las llamadas a funciones. Haciendo un poco al aire el asunto, creo que sería así Código
Ya tienes una parte, falta que, basándote en el ejemplo que te dí, termines el ejercicio. ;) edit el ejercicio propone hacer una función recursiva para exponencial (entero), que se llame menos veces a sí misma. Saludos Título: Re: Calcular potencia con recursividad Publicado por: sora_ori en 9 Junio 2015, 00:07 am Muchas gracias Regexp,
Esto es lo que he entendido: if (exponente%2 == 0 ){ return potencia( potencia(base, exponente/2),2); } Título: Re: Calcular potencia con recursividad Publicado por: Regexp en 9 Junio 2015, 00:10 am Muchas gracias Regexp, Esto es lo que he entendido: if (exponente%2 == 0 ){ return potencia( potencia(base, exponente/2),2); } Exactamente :) Saludos |