Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2014, 11:51   #1
Virts
 
Аватар для Virts
 
Регистрация: 10.10.2014
Сообщений: 6
По умолчанию C++ - Многократное "длинное" деление (длинного на короткое)

В общем есть задача на перевод с одной системы счисления в другие, где нужно использовать длинную арифметику (деление длинного на короткое). Само деление я смог написать, но не могу правильно повторять его и брать остаток (делю число в десятичной системе). Не буду писать много, чтобы не запутать, ниже опишу лишь цикл деления и его переменные.
Код:
for(int i = 0; i<count; i++) {
        rez[i] = (long_dv[i] + ost * 10);
        ost = rez[i] % sys_sch;
        rez[i] = rez[i] / sys_sch;
    }
/* count - количество цифр числа, rez[i] - массив 
с частным от деления, long_dv - массив, где лежит число
 (в десятичной системе) ost - остаток от деления, sys_sch - 
система счисления, в которую нужно перевести (ну, или просто делитель, по-сути). 
*/
Понимаю, что если первые элементы меньше делителя, то на начале будут нули, но сам массив отдельно сдвинуть я смогу, проблема не в этом. Весь этот цикл нужно взять в еще один, который будет выполнятся до тех пор, пока число не "доделится" полностью, и не будет заполнен массив "остатков" от каждого деления. Но как узнать нужное количество итераций - я понять не могу. Буду очень благодарен за помощь, скажу честно, что на задачу убиваю уже второй день.
Virts вне форума Ответить с цитированием
Старый 12.10.2014, 21:42   #2
Virts
 
Аватар для Virts
 
Регистрация: 10.10.2014
Сообщений: 6
По умолчанию

задача актуальна
Virts вне форума Ответить с цитированием
Старый 12.10.2014, 22:22   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но не могу правильно повторять его и брать остаток
Что-то я совсем не понял что же не так...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.10.2014, 23:57   #4
Virts
 
Аватар для Virts
 
Регистрация: 10.10.2014
Сообщений: 6
По умолчанию

Ну, если попробовать объяснить задачу и проблему с 0, то выйдет что-то такое. Есть задание на перевод с одной системы счисления (вводится двоичное число, которое не больше 10^100) на системы в диапазоне 3-20.
Я хочу реализовать такое решение: ввод сразу в массив, потом преобразование двоичного в десятичную систему счисления (в новый массив). Далее для перевода числа в десятичной системе в любую другую я хочу просто брать остаток от каждого деления на систему счисления, а деления эти повторять до тех пор, пока число (десятичное) не будет равно 0. После этого буду иметь массив с остатками от каждого деления. В цикле, который будет выводит этот массив наоборот, хочу добавить switch (для значений 9>) и сразу же выводит переведенное число.

Проблема собственно в пункте, где нужно повторять деление до тех пор, пока число не будет равно 0. Одно длинное деление (длинного числа на короткое) я могу сделать, но нужно сделать повторение этой операции, а там много факторов, которые я "пофиксить" не могу.
Virts вне форума Ответить с цитированием
Старый 13.10.2014, 16:40   #5
Virts
 
Аватар для Virts
 
Регистрация: 10.10.2014
Сообщений: 6
По умолчанию

все еще актуально
Virts вне форума Ответить с цитированием
Старый 14.10.2014, 20:08   #6
Virts
 
Аватар для Virts
 
Регистрация: 10.10.2014
Сообщений: 6
По умолчанию

up. Все еще не решил проблему многократного длинного деления
Virts вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" Alexsandrr Microsoft Office Excel 4 19.10.2013 14:22
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Как выполнить цикл перебора значений?Не через многократное вложенное "ЕСЛИ"? Константи Microsoft Office Excel 1 30.08.2012 10:52
Delphi 7 + Windows Vista & 7: обработка исключений "деление на 0" (и др. мат. ошибок) Dima DD Общие вопросы Delphi 11 22.12.2010 20:14
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04