![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Гость_Антон |
![]() ![]()
Сообщение
#1
|
Гость ![]() |
Даны натуральные числа n, m, неотрицательные целые числа am, am-1..a0 такие, что amam-1..a0- запись n в некоторой системе счисления (среди аm могут быть и числа, большие девяти, - это будет означать, что основание системы счисления заведомо больше десяти). Требуется определить основание использованной системы счисления.
Хотябы с чего начать подскажите. javascript:emoticon(':huh:') |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Гость_Антон
Начни с того, что найди среди чисел A[i] максимальное; это максимальное число, увеличенное на 1, и будет минимальным основанием системы счисления... (Почему минимальным? Пример: в какой системе счисления записано число 12456? В 7-ой? 8-ой? 10-ой? Можно точно сказать лишь одно: основание с/с больше 6, т.к. максимальная цифра в записи числа = 6) |
Guest |
![]()
Сообщение
#3
|
Гость ![]() |
а число 1010111100101 не обьязательно двоичное!
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Guest
читать умеешь? Цитата максимальное число, увеличенное на 1, и будет минимальным основанием системы счисления.. |
xds |
![]()
Сообщение
#5
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
В основе любого решения этой задачи будет лежать (прямо или косвенно) следующий факт:
n = a[m] * b^m + a[m - 1] * b^(m - 1) + ... + a[0] * 1, где b - основание системы счисления. Переформулируем условие: для данных неотрицателных целых чисел a[0], a[1], ..., a[m] и натурального числа n найти такое натуральное число b, что указанное выше равенство превратится в тождество. -------------------- The idiots are winning.
|
Guest |
![]()
Сообщение
#6
|
Гость ![]() |
Зто подбором чтоли
типо от 2 до 26 подставлять в a[m] * b^m + a[m - 1] * b^(m - 1) + ... + a[0] * 1 вместо b и сравнивать с n |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Guest
Не надо от 2-х до 26 (кстати, почему именно до 26? Уж не по количеству ли букв в латинском алфавите?). Я же показал, как сократить диапазон вычислений: сначала находишь минимально возможное основание с/с, а потом уже по формуле, предложенной xds от этого самого числа до 26. |
Гость_Антон |
![]()
Сообщение
#8
|
Гость ![]() |
в "худшем" случае от 2 до 9+26
{2345678910ABCDEFGHIJKLMNOPQURSUVWXYZ} При нахождении минимального основания, от него до 36,потом ещё какой-то case нада делать для преобразования буквы в число в 10-й сс. или спец формулу применить типа, ord(a)- там, по таблице не помню, 90, чтоль, короче, я еще загляну! |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 16:56 |