Минимальное допустимое основание системы счисления

  • 16
  • Недоступна
В метод main первым аргументом приходит строка, которая содержит последовательность символов (Все символы в строке имеют коды в таблице ASCII от 32 до 127 включительно). Длина строки не превышает 255 символов. Нужно реализовать программу, которая по входящей строке определит, является ли содержимое
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (61)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Юрий34 уровень, Минск
10 апреля, 07:44
меня чего то переклинило и я выводил максимальное основание,думал что не так)))
maxboot41 уровень, Днепр
3 марта, 12:43
Для решения использовал регулярку ".*[^A-Za-z0-9]+.*" , а дальше создавал новый BigInteger на базе входного аргумента и прогонял по всем степеням, если все ок выводим значение степени, если лажня отлавливаем исключение, но цикл не прерываем.
S3R3N1TY33 уровень, Санкт-Петербург
29 марта, 19:23
Как вариант регулярки number.matches("\\w*")) alphanumeric \w metacharacter which is equivalent to the character range [A-Za-z0-9_]
rotarru34 уровень, Минск
26 февраля, 06:47
Что-то у меня какой-то пробел. Пребывал в уверенности, что строка "12AS08z" не должна парситься, из-за прописной "z". Думал, что запись должна быть только заглавными.
22 января, 11:06
veryBigInteger!!!
Kovur31 уровень
16 января, 21:24
try-catch должно быть два. Один ловит попытки преобразования, а во второй завернут весь код целиком.
Vitaly Khan36 уровень
24 марта, 00:45
второй - необязательно целиком. достаточно обернуть использование arg[0]
Макс35 уровень
28 декабря 2018, 19:23
решить норм задачу сбивает информация о (Все символы в строке имеют коды в таблице ASCII от 32 до 127 включительно). Длина строки не превышает 255 символов. for+BigInteger bigInteger = new BigInteger( args[0],i ); и вставляем два try catch
NodeOne41 уровень
20 октября 2018, 10:03
Не принимало когда обрабатывал и прописные буквы. Потом догадался привести строку к верхнему регистру и убрать обработку строчных букв - прошло. Никаких BigInteger ни юзал.
Kovur31 уровень
16 января, 21:33
Но это неправильно. Прописные тоже нужно обрабатывать, т.к. дается пример "12AS08z". Т.е. диапазон: 1-9, A-Z, a-z
NodeOne41 уровень
17 января, 13:01
Ну тогда просто игнорируйте мой пост. Как будто в вашей вселенной его нет.
Mark34 уровень, Санкт-Петербург
19 сентября 2018, 18:34
Как это Задачу приходится решать через распарсивание числа с помощью BigInteger. Хотя ежу понятно, что достаточно найти в числе самую большую цифру и прибавить единичку. В десятичной системе самая большая цифра 9, в шестнадцатеричной f (15) и т.д. но нет)
Арман Матаков35 уровень, Алматы
20 февраля, 21:40
если вам придет в строке цифра 8, и вы к ней еденицу прибавите, что получится-то?)
Vitaly Khan36 уровень
24 марта, 00:50
не очень понял вопроса. Mark все верно написал. естественно, что для "8" ответ будет 9.
Арман Матаков35 уровень, Алматы
25 марта, 08:00
То, что может быть система ислчисления на основе 8, на основе 7, на основе 6, и на основе 9. Если вы прибавите к максимальному (8) еденицу в системе исчисления, основанной на 8, то нифига у вас не получится.
Vitaly Khan36 уровень
25 марта, 10:00
Задание: "нужно вывести минимальное основание системы счисления, в которой это число может существовать". если в вашем числе есть цифра 8, то минимальное основание системы счисления, в которой это число существует, - 9.
Арман Матаков35 уровень, Алматы
25 марта, 19:37
Верно, я протупил, не обращайте внимания)
Василий36 уровень
8 августа 2018, 09:43
Длину строки не проверять - будет неочевидная ошибка по первому пункту (
Николаевич39 уровень
24 июля 2018, 13:44
не нужно проверять отдельно строку на "лишние" символы. если посмотреть таблицу ascii кодов, то увидите, что в заданном диапазоне как раз и находятся интересующие нас символы, все остальное просто не распарсится в число с любым основанием - будет исключение, которое и выведет "incorrect". у меня все просто по задумке: проверил на длину строку (чтоб не больше 255 символов и то не уверен, что это было обязательно), в цикле попробовал ее распарсить с основанием, которое и подбирал этим циклом, если получалось, то выводил значение основания и выходил из цикла, если нет - попадал в catch, где проверял равно ли i(количество итераций) 36, если да, то выводил "incorrect", нет - опять по циклу прошелся... один нюанс выяснился, что без заключения в try-catch всего кода, не принимало по первому пункту, хотя уверен, что можно было и без этого реализовать.