Algoritmo de la raiz enesima

Iniciado por AlessioAuditore, 2 Octubre 2016, 01:41 AM

0 Miembros y 1 Visitante están viendo este tema.

AlessioAuditore

Una pregunta.
Necesito un algoritmo que calcule la raiz enesima de un un numero, hecho en Java. La restriccion es no utilizar la clase Math y su metodo pow.
Asi que he estado pensando en muchas maneras de resolverlo. algunas son una locura. manejandolo como una cadena y simular el proceso en el cuaderno de como nos enseñaron a sacar la raíz. muy complicadas y muy robustas, que de por si, solo me aproximan al resultado.

saben de algun algoritmo con solo sumas, restas, divisiones y multiplicaciones que me ayude a resolverlo ?
=)

oldaccount

Hola AlessioAuditore.

Esta es mi solución al problema:

Código (java) [Seleccionar]
import java.util.Scanner;

public class RaizEnesima {
public static void main(String[] args) {
float x = 0f;
int n = 0;
float result = 0f;
float aux = 0.00001f;
Scanner sc = new Scanner(System.in);

x = sc.nextFloat();
n = sc.nextInt();

if(n == 0) {
result = 1;
} else {
while(potenciaEnesima(result, n) < x) {
result = result + aux;
}
}

System.out.printf("%.4f\n", result);
}

public static float potenciaEnesima(float x, int n) {
float tmp = 1;

for(int i = 0; i < n; i++) {
tmp = tmp * x;
}

return tmp;
}
}


La salida del programa es:

27
0
1.0000


27
3
3.0000


65978
12
2.5213


7867868238
7
25.9235


Saludos.