sintaxis programas funciones ejemplos dev comandos codigos basicos avanzados c++ biginteger

programas - Biblioteca de grandes números en c++



programas en c++ ejemplos avanzados pdf (4)

Desafortunadamente, no hay una biblioteca estándar para grandes números. Usted dijo que está buscando una biblioteca "simple", la biblioteca más simple que conozco es InfInt . Se compone de un solo archivo de cabecera. Su uso es bastante simple. Aquí hay un código de ejemplo:

InfInt myint1 = "15432154865413186646848435184100510168404641560358"; InfInt myint2 = 156341300544608LL; myint1 *= --myint2 - 3; std::cout << myint1 << std::endl;

Estoy haciendo un proyecto que requiere números realmente grandes, de hasta 100 dígitos. He leído que java es compatible con grandes enteros ( java.Math.BigInteger ), y quiero saber si hay algo así en C ++. Entonces, aquí está mi pregunta: ¿Existe una biblioteca de c ++ estándar o no estándar que implemente grandes enteros?

Nota: Si no hay una implementación estándar para enteros grandes, me gustaría una simple no estándar. Gracias por adelantado.


La biblioteca aritmética de precisión múltiple de GNU hace lo que usted quiere http://gmplib.org/

Gnu MP es una biblioteca de C, pero tiene una interfaz de clase C ++ y si solo está interesado en los enteros grandes, puede tratar con mpz_class . Mire la muestra a continuación que tomé de la página C ++ Interface General

int main (void) { mpz_class a, b, c; a = 1234; b = "-5678"; c = a+b; cout << "sum is " << c << "/n"; cout << "absolute value is " << abs(c) << "/n"; return 0; }


Tomará entrada en una matriz de caracteres y luego la convertirá en una matriz int. El tamaño de la matriz también se puede cambiar.

#include<iostream> using std::cout; using std::cin; using std::endl; int main() { int b, i, arrayint[100]; char arraychar[100]; for(i = 0; i < 100; i++) cin >> arraychar[i]; for(i = 0; i < 100; i++) cout << arraychar[i]; cout << endl; for(i = 0; i < 100; i++) arrayint[i] = arraychar[i] - ''0''; for(i = 0; i < 100; i++) cout << arrayint[i]; return 0; }