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 ?
=)
Hola AlessioAuditore.
Esta es mi solución al problema:
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.