Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: AlessioAuditore en 2 Octubre 2016, 01:41 AM

Título: Algoritmo de la raiz enesima
Publicado por: AlessioAuditore en 2 Octubre 2016, 01:41 AM
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 ?
=)
Título: Re: Algoritmo de la raiz enesima
Publicado por: oldaccount en 11 Octubre 2016, 22:12 PM
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.