biginteger — есть ли встроенные классы для обработки больших целочисленных значений в C ++?

Сейчас я решаю некоторые проблемы с онлайн-судьей UVA и сталкиваюсь со сценариями, в которых мне нужно хранить очень большие целочисленные значения (иногда до 15 цифр). Есть ли способ сделать это без использования сторонних библиотек? [Что-нибудь похожее на BigInteger класс в Яве?

2

Решение

Для Pow с целыми числами, http://en.wikipedia.org/wiki/Exponentiation_by_squaring

Я бы предложил GMP

Пожалуйста, обратитесь по этой ссылке: — C ++ обрабатывает очень большие целые числа

2

Другие решения

Необходимы сторонние библиотеки (если вы не хотите писать свою собственную библиотеку). GMP или MPIR — те, на которые можно пойти.

1

Нет, в стандартной библиотеке такой структуры нет. Но всегда вы можете проверить GMP, MPFR или подобное. Просто поиск в Google.

1

Вы можете использовать GNU libgmp для произвольной точности арифметики в C.

1

Самым простым в использовании будет Boost Multiprecision

http://www.boost.org/doc/libs/1_55_0/libs/multiprecision/doc/html/index.html

Вот простой пример

#include <boost/multiprecision/cpp_int.hpp>

using namespace boost::multiprecision;

int main(){

cpp_int          a_really_big_number("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000");
a_really_big_number += 7;

}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector