Здравствуйте! Задали нам лабу, которую я никак не могу понять как делать. Задание такое: Найти остаток от деления одного длинного целого на другое. При этом нельзя использовать базовые типы (арифметика многократной точности) и программную реализацию рациональных чисел.
Я даже понятия не имею с чего начинать. Похожее задание делал одногруппник (только там с умножением 2х длинных целых), работал со строками. Помогите пожалуйста с этим заданием если сможете
Начать следует с того, что более конкретно сформулировать, чем можно пользоваться и чем - нельзя.
Создать программу, не использующую ни одной переменной (а как еще можно воспринимать запрет на ВСЕ базовые типы?), достаточно проблематично. Без базового числового типа не сделаешь даже цикл.
В таком случае тебе надо просто найти в FAQ-е тему Длинная Арифметика, и воспользоваться тем, что там написано. Ни с одним пунктом твоего задания это не будет конфликтовать...
ок спасибо, поищу
Деревья программы не пишут.
Не нужно им это.
Если тебе нужно, значит, ты не дерево, и надо затратить хоть немного собственных усилий для того, чтобы что-то получилось.
Основная идея достаточно проста и полностью совпадает с тем, как мы проводим вычисления с помощью карандаша и бумаги.
Числа мы представляем в виде набора цифр. Для любой пары цифр нам известны таблица умножения и таблица сложения. Пользуясь этими таблицами, а также известным алгоритмом (например в столбик), мы можем проводить вычисления над многозначными числами. Точно так же происходят вычисления и в длинной арифметике - число представляется массивом, а каждый элемент массива - своеобразная цифра. Если в качестве длинных чисел использовать строки, то один знак - десятичная цифра. Если пользоваться примером из FAQ, каждое число массива - это 10000-чная цифра, т.е. цифра, значение которой лежит в диапазоне от 0 до 9999.