alguém sabe como é o algoritmo recursivo de potência para qualquer base?
abraço
Algoritmo Recursivo
N
4 Respostas
P
public static double potencia(double y, int k) {
if (k == 0)
return 1;
else
return y * potencia(y, k - 1);
}
N
vlw cara! 
Mas e para expoentes inteiros negativos, funciona também? Ou só com laços?
Todo laço pode ser reescrito na forma de recursão.
No caso desse algoritmo, a adaptação é bastante fácil:
public static double potencia(double y, int k) {
if (k == 0)
return 1;
if (k < 0)
return 1.0 / potencia(y, -k);
return y * potencia(y, k - 1);
}
Ou, se quiser ostentar com uma só linha de código:
public static double potencia(double y, int k) {
return k == 0 ? 1.0 :
k < 0 ? 1.0 / potencia(y, -k) : y * potencia(y, k - 1);
}
Criado 2 de abril de 2008
Ultima resposta 10 de mai. de 2015
Respostas 4
Participantes 4