![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]()
И так господа программисты, поскольку поток студентов\школьников-хомячков закончился, а душа жаждет программирования, то вопрос : как бы Вы решили данную задачу (с точки хрения красоты и эффективности)? http://acmp.ru/index.asp?main=task&id_task=315 (опять же сорри за не очень красивую ссылку, т.к. пишу с "работы")
Для нелюбителей ссылок: Известно, что основанием позиционной системы счисления называют количество различных символов, используемых для записи чисел в данной системе счисления. Также известно, что любое число x в b-ичной системе счисления имеет вид x=a0∙b0+a1∙b1+…+an∙bn, где b ≥ 2 и 0 ≤ ai < b. Для записи чисел в b-ичной системе счисления, где b ≤ 36, могут быть использованы первые b символов из следующего списка 0,1,…, 9, A, B, …, Z. Например, для записи чисел в троичной системы используются символы 0, 1, 2, а в двенадцатеричной - 0,1,…, 9, A, B. Требуется написать программу, которая по входной строке S определит, является ли данная строка записью числа в системе счисления, с основанием не большим 36, и, если является, определит минимальное основание этой системы счисления. Данную задачу я решил вот так : Код:
Последний раз редактировалось Poma][a; 12.07.2012 в 10:35. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Я бы чуть упростил
Код:
Последний раз редактировалось eoln; 12.07.2012 в 12:30. Причина: ошибка |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Я бы не решился назвать замену алгоритма O(N) на O(N^2) упрощением.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
s-andriano, Вы наверное к максимальной оптимизации стремитесь? В магазин не со своими атомными весами ходите?
![]() Упростить, значит сделать жизнь проще, а не быстрее. Код компактный, быстродействие (учитывая макс. длину строки 255 символов) хорошее. P.S. Не собираюсь спорить по вопросы оптимизации, в данном случае она не критична. |
![]() |
![]() |
![]() |
#5 | ||
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]() Цитата:
Цитата:
Но за хороший комент, s-andriano Вам не менее огромное спасибо! |
||
![]() |
![]() |
![]() |
#6 | ||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Если Вы предлагаете решение, которое лучше по всем параметрам - нет вопросов. Но если Ваше решение кроме плюсов имеет и явные минусы - это нужно, минимум оговаривать. Я не утверждаю, что менее оптимальные решения не стоит приводить, я лишь предостерегаю от однозначных характеристик (типа "проще") в явно неоднозначных случаях. Цитата:
Впрочем, и обратного я не утверждаю: вполне вероятно, ТС Ваше решение подойдет больше. Но о том, что ему критично, а что - нет, решать ему. |
||
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]() |
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
![]() |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]() Код:
|
![]() |
![]() |
![]() |
#10 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]()
Для сравнения эффективности алгоритмов решил выложить время по тестам :
Poma][a : Код:
eoln Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
даны три квадратные матрицы третьего порядка.вывести на экран ту из них,норма которой наименьшая. в качестве нормы матрицы взять м | ayoka | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 16.05.2012 18:28 |
Массив (наименьшая сумма) | Dmitriy_B | C++ Builder | 4 | 18.02.2012 01:25 |
наименьшая цифра числа в delphi | SALOmandra | Помощь студентам | 2 | 22.04.2008 15:57 |