
? Trabajo en progreso?
Descargue el archivo de encabezado de incluido único en una ubicación en su ruta de incluido. Luego #include en su código:
# include " BigInt.hpp " // the actual path may vary ¡Crea objetos de la clase BigInt y haz lo que tienes que hacer!
BigInt big1 = 1234567890 , big2;
big2 = " 9876543210123456789098765432101234567890 " ;
std::cout << big1 * big2 * 123456 << " n " ;
// Output: 1505331490682966620443288524512589666204282352096057600 = El segundo operando puede ser un BigInt , un entero (hasta long long ) o una cadena ( std::string o una cadena literal).
big1 = 1234567890 ;
big1 = " 123456789012345678901234567890 " ;
big1 = big2;+ , - big1 = +big2; // doesn't return the absolute value
big1 = -big2;+ , - , * , / , % Uno de los operandos tiene que ser un BigInt y el otro puede ser un BigInt , un entero (hasta long long ) o una cadena ( std::string o una cadena literal).
big1 = big2 + 1234567890 ;
big1 = big2 - " 123456789012345678901234567890 " ;
big1 = big2 * big3;
big1 = 1234567890 / big2;
big1 = " 123456789012345678901234567890 " % big2;+= , -= , *= , /= , %= El segundo operando puede ser un BigInt , un entero (hasta long long ) o una cadena ( std::string o una cadena literal).
big1 += big2;
big1 -= 1234567890 ;
big1 *= " 123456789012345678901234567890 " ;
big1 /= big2;
big1 %= 1234567890 ;++ , -- big1 = ++big2; // pre-increment
big1 = --big2; // pre-decrement
big1 = big2++; // post-increment
big1 = big2--; // post-decrement < , > , <= , >= , == , != Uno de los operandos tiene que ser un BigInt y el otro puede ser un BigInt , un entero (hasta long long ) o una cadena ( std::string o una cadena literal).
if (big1 < 1234567890
or big1 > " 123456789012345678901234567890 "
or big1 <= big2
or 1234567890 >= big1
or " 123456789012345678901234567890 " == big1
or big1 != big3) {
...
}<< , >> std::cout << big1 << " , " << big2 << " n " ;
output_file << big1 << " , " << big2 << " n " ;
std::cin >> big1 >> big2;
input_file >> big1 >> big2;to_string , to_int , to_long , to_long_long Convierta un BigInt en una string , int , long o long long .
Nota : Si el BigInt está más allá del rango del tipo de destino, se lanza una excepción OUT_OF_RANGE.
some_str = big1.to_string();
some_int = big1.to_int();
some_long = big1.to_long();
some_long_long = big1.to_long_long();abs Obtenga el valor absoluto de un BigInt .
big1 = abs(big2);big_pow10 Obtenga un BigInt igual a 10 exp .
big1 = big_pow10( 5000 ); // big1 = 10^5000 gcd Obtenga el mayor divisor común (GCD AKA. HCF) de dos BigInt s. Uno de los argumentos puede ser un entero (hasta long long ) o una cadena ( std::string o una cadena literal).
big1 = gcd(big2, big3);
big1 = gcd(big2, 1234567890 );
big1 = gcd(big2, " 123456789012345678901234567890 " );
big1 = gcd( 1234567890 , big2);
big1 = gcd( " 123456789012345678901234567890 " , big2);lcm Obtenga el múltiplo menos común (LCM) de dos BigInt . Uno de los argumentos puede ser un entero (hasta long long ) o una cadena ( std::string o una cadena literal).
big1 = lcm(big2, big3);
big1 = lcm(big2, 1234567890 );
big1 = lcm(big2, " 123456789012345678901234567890 " );
big1 = lcm( 1234567890 , big2);
big1 = lcm( " 123456789012345678901234567890 " , big2);pow Obtenga el valor de Base Exp como un BigInt . La base puede ser un BigInt , un entero (hasta long long ) o una cadena ( std::string o una cadena literal).
big1 = pow(big2, 789 );
big1 = pow( 987654321LL , 456 ); // suffix literal with LL to prevent conflicts
big1 = pow( " 1234567890 " , 123 );sqrt Obtenga la raíz cuadrada entera de un BigInt .
big1 = sqrt(big2);big_random Obtenga un BigInt aleatorio, que tenga un número aleatorio de dígitos (hasta 1000) o un número específico de dígitos.
// get a random BigInt that has a random number of digits (up to 1000):
big1 = big_random();
// get a random BigInt that has 12345 digits:
big1 = big_random( 12345 );Dado que este proyecto se construye como una biblioteca solo de encabezado, no hay archivos de origen. Sin embargo, hay pruebas unitarias para cada archivo de encabezado en el que el proyecto se divide. Estos se pueden compilar y construir a través de la línea de comandos o usar un IDE que tenga soporte directo para CMake (como Clion, QT Creator) o para el cual CMake puede generar archivos de proyecto (Visual Studio, Eclipse CDT, Code :: Blocks y más).
En Linux y MacOS, puede compilar y ejecutar las pruebas utilizando la línea de comando desde el directorio raíz del proyecto.
make .make test .make release . El archivo generado aparecerá en la carpeta release .Settings > Build > CMake , configure la Generation path para build .Luego, simplemente puede seleccionar qué objetivo (prueba unitaria) desea construir/ejecutar, y su IDE hará el resto.
En caso de que su IDE no admita CMake directamente, deberá ejecutar cmake a través de la línea de comando con los indicadores apropiados para generar los archivos del proyecto para su IDE. Pruébalo, ¡no se supone que sea difícil!
Lea las pautas de contribución para obtener detalles sobre cómo contribuir al proyecto.
Este proyecto tiene licencia bajo los términos de la licencia MIT.