![]() |
Модераторы: volvo877, Snowy, MetalFan |
![]() ![]() ![]() |
|
zetxi815eb |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 17.1.2007 Репутация: нет Всего: нет |
Вот условье самой задачи:
Задача A. "Палиндром". Входной файл input.txt Выходной файл output.txt Ограничение по времени 1 секунда на тест Ограничение по памяти 4096К байт Натуральное число называется палиндромом, если оно читается слева направо и справа налево одинаково. Известно, что для любого натурального числа можно подобрать такую систему счисления, в которой это число является палиндромом. Например, число 15 записывается в двоичной системе счисления как 1111 и является палиндромом. Вход В первой строке входного файла записано натуральное число N (N < 2^31). Выход Запишите в выходной файл наименьшее основание системы счисления, в которой N является палиндромом. Примеры входа и выхода input.txt output.txt 2 3 input.txt output.txt 11 10 В Паскале мне раньше не приходилось переводить числа из одной системы в другую. Подскажите по какой формуле это делать? Какой тип использовать?? Ведь N имеет тип longint. Помогуте, плиз, желательно с коментариями...мне не столько важно решить эту задачу... я просто хочу разобраться в методе её решения. |
|||
|
||||
Magister Y0da |
|
|||
![]() Зелёненький ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 30.11.2004 Репутация: нет Всего: 2 |
где-то на форуме SoWa вроде выкладывал свой модуль перевода чисел из любой системысчисления в любую
Поищи ![]() --------------------
|
|||
|
||||
zetxi815eb |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 17.1.2007 Репутация: нет Всего: нет |
Magister Y0da, а можешь дать ссылку на этот форум?
|
|||
|
||||
volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
zetxi815eb,
FAQ тебе в помощь: http://vingrad.ru/DELPHI-DLP-001153 (правда, решение на Дельфях, но алгоритм-то остается... Можешь еще в поиске по разделу Паскаль ввести слово "счисления" - получишь ссылки на несколько интересных тем... Ну, и ссылки в самом низу этой вот страницы, которую ты сейчас читаешь ![]() |
|||
|
||||
zetxi815eb |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 17.1.2007 Репутация: нет Всего: нет |
Вот...нашёл я наконец эту функцию:
Люди...вот только я не пойму как работает 8-я строчка...можете обьяснить? |
|||
|
||||
volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Эта? ![]() сначала находится последняя цифра числа (это n mod radix, остаток от деления на основание с/с), но поскольку нумерация символов в строке в Турбо Паскале начинается с 1, а не с 0, а нам фактически нужна позиция символа в строке, представляющего заданное число в системе счисления с основанием radix, то мы к этой самой цифре прибавляем 1... Дальше - строка преобразуется от конца числа к началу, поэтому, тот символ в новой с/с, который мы вытащили из строки (вот так: digit[(n mod radix)+1]), надо "прилепить" к старой строке-результату спереди, что и делается - сначала символ, потом строка. Результат опять же запоминается в той же строке... Ну, и в 10-ой строке мы делим число нацело на основание с/с, чем "убираем" последнюю цифру, и процесс продолжается вновь... Пока число не превратится в 0... |
|||
|
||||
Letov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 22.2.2007 Где: Санкт-Петербург Репутация: нет Всего: 4 |
Перевод дробного числа D (т.е любого) в p-ичную систему происходит по следующему алгоритму:
1.Умножить D на p; 2.Целую часть произведения представить соответствующей цифрой p-ичного представления; 3.Умножать D на p до тех пор, пока не будет достигнута требуемая точность (получится p-ичное число с k дробными разрядами) или дробная часть обратится в ноль. -------------------- Не бывает плохих языков программирования. Бывают плохие программисты... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |