Помощь - Поиск - Пользователи - Календарь
Полная версия: Деление пятеричного числа на 3
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Guilty
Приветы всем smile.gif
Пожалуйста посмотрите на эту задачу. Конечно не прошу написать алгоритм , но хотя бы помоч по теории.
итак условие задачи :

Построить конечный автомат, выдающий результат деления вводимого пятеричного числа на 3. Результат выдается в форме: <частное>(<остаток>). Число вводится со старших разрядов и заканчивается маркером конца "#". Результат представляется также в пятеричной системе счисления.

Хотя бы напишите что-нибудь по теории связанной с делением пятеричного числа. Механизм деления мне интересен. good.gif
Романтик
Цитата(Guilty @ 11.04.2006 12:47)
хотя бы помоч по теории.

В лоб:
Просим сначала пользователя ввести кол-во цифр цисла.(чтобы знать с какой позиции братть цифру).
просим ввести число. например 341 получаем каждое число
3=341 div 100
4=341 div 10 mod 10
.....
просчитоваем так каждую цифру. делем на три. если число меньше 3, то pred_chislo*10+succ. по мере решения заполняем массив часиным от деления.
Я бы сделал, но спешу.
klem4
Guilty, FAQ : перевод из десятичной с.с. в любую и наоборот

Как вариант можно через десятичную все обыграть.
мисс_граффити
Цитата(Романтик @ 11.04.2006 15:33) *

В лоб:
Просим сначала пользователя ввести кол-во цифр цисла.

а зачем? пусть вводит строкой, а там уж length....
Lapp
Цитата(Романтик @ 11.04.2006 14:33)
В лоб:

Что в лоб, что по лбу.. smile.gif
Ты хоть сам-то понял, что написал? Нам объясни.. Или спешишь сильно?..
Твои 341 - это же пятиричная запись! Как это ты ее так ловко делишь на 100 и на 10?
Дальше тоже странности...
Lapp
Цитата(Guilty @ 11.04.2006 11:47) *

Хотя бы напишите что-нибудь по теории связанной с делением пятеричного числа. Механизм деления мне интересен.

Первый способ.
Заведи целую переменную, положи туда ноль, а по мере ввода цифр умножай ее на 5 и прибавляй следующую цифру. Так ты получишь верное число. Потом дели его на три, а результат переведи в пятеричную систему. Как? В цикле делишь на 5, а остаток всякий раз записываешь - это пятеричные цифры справа налево.

Второй способ.
В лоб smile.gif. Деление уголком знаешь? Вот это и есть твой алгоритм. Только не забудь, что основание 5, а не 10.
Романтик
Цитата(lapp @ 12.04.2006 7:45) *

Что в лоб, что по лбу.. smile.gif
Ты хоть сам-то понял, что написал? Нам объясни.. Или спешишь сильно?..
Твои 341 - это же пятиричная запись! Как это ты ее так ловко делишь на 100 и на 10?
Дальше тоже странности...

smile.gif .Столбик. делением числа(mod,div) я получаю чифру для деления. а pred_chislo*10+succ признаю не прав. понял. unsure.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.