elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Algoritmo de la raiz enesima
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algoritmo de la raiz enesima  (Leído 3,647 veces)
AlessioAuditore

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Algoritmo de la raiz enesima
« 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 ?
=)


En línea

oldaccount

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Algoritmo de la raiz enesima
« Respuesta #1 en: 11 Octubre 2016, 22:12 pm »

Hola AlessioAuditore.

Esta es mi solución al problema:

Código
  1. import java.util.Scanner;
  2.  
  3. public class RaizEnesima {
  4. public static void main(String[] args) {
  5. float x = 0f;
  6. int n = 0;
  7. float result = 0f;
  8. float aux = 0.00001f;
  9. Scanner sc = new Scanner(System.in);
  10.  
  11. x = sc.nextFloat();
  12. n = sc.nextInt();
  13.  
  14. if(n == 0) {
  15. result = 1;
  16. } else {
  17. while(potenciaEnesima(result, n) < x) {
  18. result = result + aux;
  19. }
  20. }
  21.  
  22. System.out.printf("%.4f\n", result);
  23. }
  24.  
  25. public static float potenciaEnesima(float x, int n) {
  26. float tmp = 1;
  27.  
  28. for(int i = 0; i < n; i++) {
  29. tmp = tmp * x;
  30. }
  31.  
  32. return tmp;
  33. }
  34. }

La salida del programa es:

Código:
27
0
1.0000

Código:
27
3
3.0000

Código:
65978
12
2.5213

Código:
7867868238
7
25.9235

Saludos.



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines