
? Trabalhar em andamento?
Faça o download do arquivo de cabeçalho de inclusão única para um local em seu caminho de incluir. Em seguida, #include no seu código:
# include " BigInt.hpp " // the actual path may vary Crie objetos da classe BigInt e faça o que você precisa fazer!
BigInt big1 = 1234567890 , big2;
big2 = " 9876543210123456789098765432101234567890 " ;
std::cout << big1 * big2 * 123456 << " n " ;
// Output: 1505331490682966620443288524512589666204282352096057600 = O segundo operando pode ser um BigInt , um número inteiro (até long long ) ou uma string ( std::string ou uma string literal).
big1 = 1234567890 ;
big1 = " 123456789012345678901234567890 " ;
big1 = big2;+ , - big1 = +big2; // doesn't return the absolute value
big1 = -big2;+ , - , * , / , % Um dos operandos deve ser um BigInt e o outro pode ser um BigInt , um número inteiro (até long long ) ou uma string ( std::string ou uma string literal).
big1 = big2 + 1234567890 ;
big1 = big2 - " 123456789012345678901234567890 " ;
big1 = big2 * big3;
big1 = 1234567890 / big2;
big1 = " 123456789012345678901234567890 " % big2;+= , -= , *= , /= , %= O segundo operando pode ser um BigInt , um número inteiro (até long long ) ou uma string ( std::string ou uma string 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 < , > , <= , >= , == , != Um dos operandos deve ser um BigInt e o outro pode ser um BigInt , um número inteiro (até long long ) ou uma string ( std::string ou uma string 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 Converta um BigInt em uma string , int , long ou long long .
NOTA : Se o BigInt estiver além do intervalo do tipo de destino, uma exceção out_Of_Range será lançada.
some_str = big1.to_string();
some_int = big1.to_int();
some_long = big1.to_long();
some_long_long = big1.to_long_long();abs Obtenha o valor absoluto de um BigInt .
big1 = abs(big2);big_pow10 Obtenha um BigInt igual a 10 exp .
big1 = big_pow10( 5000 ); // big1 = 10^5000 gcd Obtenha o maior divisor comum (GCD, também conhecido como HCF) de dois BigInt s. Um dos argumentos pode ser um número inteiro (até long long ) ou uma string ( std::string ou uma string literal).
big1 = gcd(big2, big3);
big1 = gcd(big2, 1234567890 );
big1 = gcd(big2, " 123456789012345678901234567890 " );
big1 = gcd( 1234567890 , big2);
big1 = gcd( " 123456789012345678901234567890 " , big2);lcm Obtenha o múltiplo menos comum (LCM) de dois BigInt s. Um dos argumentos pode ser um número inteiro (até long long ) ou uma string ( std::string ou uma string literal).
big1 = lcm(big2, big3);
big1 = lcm(big2, 1234567890 );
big1 = lcm(big2, " 123456789012345678901234567890 " );
big1 = lcm( 1234567890 , big2);
big1 = lcm( " 123456789012345678901234567890 " , big2);pow Obtenha o valor da Base Exp como um BigInt . A base pode ser um BigInt , um número inteiro (até long long ) ou uma string ( std::string ou uma string literal).
big1 = pow(big2, 789 );
big1 = pow( 987654321LL , 456 ); // suffix literal with LL to prevent conflicts
big1 = pow( " 1234567890 " , 123 );sqrt Obtenha a raiz quadrada inteira de um BigInt .
big1 = sqrt(big2);big_random Obtenha um BigInt aleatório, que possui um número aleatório de dígitos (até 1000) ou um 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 );Como este projeto é construído como uma biblioteca somente para cabeçalho, não há arquivos de origem. No entanto, existem testes de unidade para cada arquivo de cabeçalho em que o projeto está dividido. Eles podem ser compilados e construídos através da linha de comando ou usando um IDE que possui suporte direto para CMake (como Clion, QT Creator) ou para o qual o CMake pode gerar arquivos de projeto (Visual Studio, Eclipse CDT, Code :: Blocks e muito mais).
No Linux e MacOS, você pode compilar e executar os testes usando a linha de comando no diretório raiz do projeto.
make .make test .make release . O arquivo gerado aparecerá na pasta release .Settings > Build > CMake , defina o Generation path a ser build .Em seguida, você pode simplesmente selecionar qual destino (teste de unidade) você deseja criar/executar e seu IDE fará o resto.
Caso o seu IDE não suportem diretamente o CMake, você precisará executar cmake através da linha de comando com os sinalizadores apropriados para gerar os arquivos do projeto para o seu IDE. Experimente, não deve ser difícil!
Leia as diretrizes contribuintes para obter detalhes sobre como contribuir para o projeto.
Este projeto está licenciado nos termos da licença do MIT.