|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.03.2013, 12:56 | #11 | ||
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Цитата:
Цитата:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 29.03.2013 в 13:02. |
||
29.03.2013, 12:57 | #12 | |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
Цитата:
Код:
|
|
29.03.2013, 12:58 | #13 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Вадим, все бы хорошо, если бы не
Цитата:
|
|
29.03.2013, 13:19 | #14 |
Форумчанин
Регистрация: 13.12.2007
Сообщений: 788
|
Помнится нечто подобное попадалось на олимпиаде, задачка из разряда
В строку выписано бесконечное количество чисел по определенному закону (в данном случае просто инкремент), определить n-ую цифру в такой строке. Для небольших значений n задачка простая, но вот самый интерес начинается для больших чисел + ограничения работы по времени и по отжираемой памяти Навскидку, мысль такая: весь ряд можно четко разложить на группы 9 знаков - однозначные числа 180 знаков - двузначные итд... В первую очередь по n определяем, к какой группе относится эта позиция Например n=100 n>9<9+180, т.е. в этой позиции какое-то двухначное число Затем определяем какое именно число 100-9=91 \ 2 = 45, т.е. это 45ое двухначное число 91 % 2 = 1, то есть первая цифра этого числа (длля последней - остаток 0) 45-ое двухначное число - это 54, его первая цифра - 5, вот и ответ P.S. за точность не ручаюсь, просто мысль Аналогичный пример для n=3000 1) Расчет групп (10^g-10^(g-1))*g - количество количество символов в группе g-значных чисел N=3000 попадает в группу 4-хзначных чисел 2) Вычитаем из n сумму длин групп 1,2 и 3-значных чисел (9+180+2700=2889, 3000-2889=111) 3) Остаток от деления на 4 = 3, , то есть третья цифра числа 4) Целая часть от деления на 4 = 27, то есть это 27-ое четырехзначное число (1026) 5) Третья цифра - 2 Проверьте меня кто-нибудь, пожалуйста)
благодарность - сюда (не забываем писать от кого)
Последний раз редактировалось Zer0; 29.03.2013 в 13:42. |
29.03.2013, 13:35 | #15 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Дурацкая задача получается - данные уже есть, но пока что их нет.
I'm learning to live...
|
|
29.03.2013, 13:45 | #16 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Zer0, очень интересный алгоритм, спасибо!
вполне возможно, что авторы предполагали решение данной задачи "в лоб". Примерно, как в этой теме: Дано натуральное k. Напечатать k-ю цифру последовательности 149162536..., в которой выписаны подряд квадр (см. мой пост #4) Дело в том, что современные процессоры ну ОЧЕНЬ быстрые... и моргнуть не успеешь, как они цикл от 1 до миллиона прокрутят! А память особо выделять не надо - перевели текущее число в строку, нарастили длину общей строки, а сохранять всю последовательность в памяти - это нам совсем НЕ НУЖНО! Нужно дождаться, когда длина дойдёт до нужного N и всё! а вот на форуме ещё такую аналогичную задачу решали: цифра, которая находится в k-той позиции последовательности Последний раз редактировалось Serge_Bliznykov; 29.03.2013 в 13:53. |
29.03.2013, 14:21 | #17 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 29.03.2013 в 14:30. |
29.03.2013, 14:22 | #18 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Во! Кажись нашел ошибку с своей голове!
Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 29.03.2013 в 15:02. |
29.03.2013, 18:17 | #19 |
Пользователь
Регистрация: 24.01.2013
Сообщений: 67
|
Без массивов строк и пр. Прямое вычисление цифры в последовательности по известному N (номеру).
Код:
|
30.03.2013, 16:20 | #20 | ||
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
День добрый.
Дико извиняюсь за супер скоростной ответ.. Цитата:
Цитата:
Аватар, а не могли бы Вы чуть-чуть прокомментировать этот кусок кода : Код:
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Интересная задача | makskovalko | Помощь студентам | 13 | 25.01.2013 11:29 |
интересная задача | Erkesh | Помощь студентам | 1 | 03.11.2012 16:19 |
Интересная задача | makskovalko | Помощь студентам | 6 | 12.08.2012 18:47 |
интересная задача | Знаменок | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 05.10.2010 13:26 |
Интересная задача! - | DannerDOS.kz | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 16.12.2008 14:04 |