итак. разбираюсь со сверх большими числами. теми, которые ни в один тип не влазят.
нашел интересную библиотеку под это дело. NTL называется. качать отсюда www.shoup.net/ntl/download.html
пока тестил только под винду, но думаю под линух проблемм возникнуть не должно.
коротко, что надо сделать:
1. само собой распаковываем архив куда-нибудь аля c:\ntl
2. надо руками скомпилить библиотеку под себя. можно использовать vc, можно mingw. я делал в визуалке.
поэтапно
добавляем всё из c:\ntl\WinNTL-xxx\src.
xxx - номер версии. будут какие-то числа
на
(поставили 0 - вырубили опцию)
Вот и всё. у нас есть либа. теперь подключаем ее к проекту и можем работать со сколь угодно большими числами...
пример:
вот еще примеры: www.shoup.net/ntl/doc/tour-examples.html
это круто.
нашел интересную библиотеку под это дело. NTL называется. качать отсюда www.shoup.net/ntl/download.html
пока тестил только под винду, но думаю под линух проблемм возникнуть не должно.
коротко, что надо сделать:
1. само собой распаковываем архив куда-нибудь аля c:\ntl
2. надо руками скомпилить библиотеку под себя. можно использовать vc, можно mingw. я делал в визуалке.
поэтапно
File -> New -> Projects project name: ntl location: c:\ntl_lib Win32 static library OK Finish OKProject -> Add to Project -> Files
добавляем всё из c:\ntl\WinNTL-xxx\src.
xxx - номер версии. будут какие-то числа
Project -> Settings -> C/C++ Категория: Preprocessor. Additional include directories: c:\ntl\WinNTL-xxx\include. Click on OK. Build -> build ntl.lib3. если вдруг компилироваться не будет, выдавая огромное количество ошибок, надо покопаться в cinfig.h. мне помогла замера
#if 1
#define NTL_STD_CXX
на
#if 0
#define NTL_STD_CXX
(поставили 0 - вырубили опцию)
Вот и всё. у нас есть либа. теперь подключаем ее к проекту и можем работать со сколь угодно большими числами...
пример:
#include <NTL/ZZ.h> NTL_CLIENT int main() { ZZ a, b, c; cin >> a; cin >> b; c = (a+1)*(b+1); cout << c << "\n"; }и на сколько бы большие целые мы не ввели в a и b, всё будет считаться.
вот еще примеры: www.shoup.net/ntl/doc/tour-examples.html
это круто.
Комментариев нет:
Отправить комментарий