Максимальная длина числа - 1000 знаков
Define NUMMAX 1000 Основание системы счисления длинных чисел - 10^9 Define NUMBASE 1000000000 Получение длины числа #define NUMLEN(n) ((n)[0]) Определение типа длинных чисел typedef int number_t[NUMMAX + 1]; Итак, мы определили тип данных длинных чисел – number_t. С его помощью можно хранить и обрабатывать числа длиной до 9000 десятичных знаков. Основание системы счисления выбрано равным 109, это позволяет содержать в одном элементе массива до 9 десятичных знаков. Рассмотрим пример хранения двух чисел: 1 и 1234567890. Число 1 меньше выбранного основания системы счисления, поэтому оно будет представлено одной значимой цифрой и для его хранения будет достаточно 1 элемента массива. Схема описания может быть следующей:
Число 1234567890 больше выбранного основания системы счисления, поэтому будет представлено двумя значимыми цифрами и для его хранения потребуются 2 элемента массива. Схема описания может быть следующей:
Создадим три вспомогательные функции, задающие значение длинного числа. Функция numzero() устанавливает длинное число равным нулю. Ее программный код выглядит так:
|