Идея решения задачи
При решении поставленной задачи использован способ разбиения целого числа на десятичные разряды. Этим способом можно записать любое целое число до 1040 в виде массива из 41 элемента, где каждый из первых 40 элементов представляет соответствующий разряд числа или незначащий 0. В таком разряде могут находиться числа от 0 до 9, и значит достаточно описать массив типом int, который не является «большим». Последний 41 элемент массива отражает знак числа (знаку «+» соответствует 0, а знаку «–» соответствует 1). Вводимое число является строкой символов. Для того чтобы преобразовать эту строку в массив целых чисел, используем следующий алгоритм: 1. Рассматриваем первый символ строки. 2. Если это не «–», то 41-му элементу массива присвоим значение 0. 3. Если «–», то: 3.1. 41-му элементу массива присвоим значение 1. 3.2. Удалим первый символ строки. 4. Начнем посимвольный просмотр строки с последнего элемента до первого. 5. Преобразуем каждый символ в целое число. 6. Полученные числа присвоим соответствующим элементам массива.
Для преобразования символа в целое число используем таблицу ASCII-кодов, в которой числам от 0 до 9 соответствуют коды от 48 до 57. Поэтому для получения целого числа необходимо из кода соответствующего ему символа вычесть 48. Пользуясь вышеизложенным алгоритмом, по введенной строке символов можно получить запись целого числа без использования «больших» типов. Для реализации требуемых операций над числами в представленной записи разработаны соответствующие алгоритмы.
|