Buenas, la duda que tengo ahora es que, estoy haciendo un programa en java sobre funciones recursivas, muy parecido a la serie de fibonacci, pero al imprimir le 61 me sale el número requerido pero al meter el 62 me sale el numero limite del long, mi código es este:
package recurso;
import java.util.Scanner;
public class Recurso {
static long recurso(long n){
long A=0;
if(n==0 || n ==1)
return n;
else
A = (long)(recurso(n-1)+ Math.pow(2,n));
return A;
}
public static void main(String[] args) {
Scanner ent = new Scanner(System.in);
System.out.print("Numero: ");
long n = ent.nextLong();
System.out.println("Respuesta: "+recurso(n));
}
}
y el resultado de 61 es:
run:
Numero: 61
Respuesta: 4611686018427387904
BUILD SUCCESSFUL (total time: 2 seconds)
y el resultado de 62 es:
Numero: 62
Respuesta: 9223372036854775807
BUILD SUCCESSFUL (total time: 0 seconds)
y por añadir el 63 es:
run:
Numero: 63
Respuesta: 9223372036854775807
BUILD SUCCESSFUL (total time: 2 seconds)
ese es mi problema, no se que hacer para que imprima mas números mucho mas grandes, ayuda por favor.
te sirve esto? lo que buscas se llama "matemática de precisión arbitraria"
http://www.iteramos.com/pregunta/23688/cruz-de-la-mejor-biblioteca-de-matematicas-de-precision-arbitraria-portable-plataforma (http://www.iteramos.com/pregunta/23688/cruz-de-la-mejor-biblioteca-de-matematicas-de-precision-arbitraria-portable-plataforma)
Muchas gracias por la ayuda ;D ;D, trate de hacerlo con Biginteger pero no me salio me marcaba error y creo que es porque no utilice bien las funciones, tratare de hacerlo ahora en C++ a ver si me sale.
en c++ no es mucho más simple, aquí un post que hice sobre esto
Calculo de pi en alta precisión (aporte) (https://foro.elhacker.net/buscador-t412338.0.html)
allí esta el código con el que calculé pi 10milones de decimales y el link al post de como configurar GMP