Сложить два очень длинных char* как int. Каким образом?

Рейтинг: 0Ответов: 2Опубликовано: 16.04.2011

Есть например два указателя:

char* a = "500";
char* b = "777";

Задача научит компьютер их складывать как числа. Загвоздка в том, что может быть вариант:

char* c = "99999999999999999999999999999999999999999999999999999999999999999999999";

Я не думаю что он поместится в стандартные типы. Как быть? Может есть какая то библиотека(желательно под Linux) для работы с гигантскими числами?

Пробовал писать свой класс, наделал кучу ошибок. Не хочется изобретать велосипед.

Ответы

▲ 3Принят

это раздел длинная арифметика.
Вот здесь написано побольше и есть задачи с онлайн проверкой.
Вот здесь есть примеры.

▲ 1

Есть. Это Длинная Арифметика. Вот и ищи библиотеки по этому запросу. Я когда был в школе писал такие под Паскаль.

В Java и Ruby, кстати, работают с такими числами стандартными средствами.