![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> а когда проверяю такое (уже внутри функции)
скиньте минимальный, но полный исходник, который можно прогнать у себя и увидеть ошибку.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
![]()
кроме функции ничего нет, но если надо то вот
Код:
|
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
ха, действительно, именно в БП они там временно сохраняют результат (i in s) в CL, а последующий вызов (j in s) успешно CL затирает. Так что да, глюк
![]()
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
![]()
спасибо, теперь всё ясно
|
![]() |
![]() |
![]() |
#15 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
veniside, +1
to Camaro Chevelle согласен, что Вы натолкнулись на глюк.. ну, в случае когда и в одном условии и в другом используется in - наблюдается косячок-с.. Не понимаю, почему Вы не хотите использовать дополнительные переменные! Ну тогда так не пользуйтесь Turbo/Borland Pascal... сейчас нет под рукой FPC, но я на 99.9% уверен, что там этого косячка не будет. (в Delphi проверил - так косячка этого нет) а ещё можно так попробовать: Код:
а ещё, я совсем не понимаю, какой алгоритм Вы заложили в свой алгоритм (я бы использовал обычный цикл, две переменные N1 и N2 - сдвиги и битовые маски. это in s - это не для меня... Последний раз редактировалось Serge_Bliznykov; 25.12.2011 в 22:23. |
![]() |
![]() |
![]() |
#16 | |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
![]() Цитата:
почему начинаю с поиска самой левой единички и забиваю на самую правую? потому что в задаче сказано, что нужно искать палиндромы среди простых чисел, то есть до вызова функции binpal составные отсеятся, а у всех простых самая крайняя правая всегда 1, т. к. чётные не являются простыми (ну кроме двойки). вот, примерно так |
|
![]() |
![]() |
![]() |
#17 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> вот, примерно так
метод забавный, но, имхо, сильно замудрённый. Цикла из 2-х строчек достаточно. http://ideone.com/CdfEd
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#18 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
![]() а я бы начал мутить с побитным сравнением в цикле и прерыванием, как только симметричные биты не совпадают... А Вы все биты исходного числа записали в новое число в обратном порядке. а потом сравнили это полученное число с исходным. совпало - значит палиндром! Просто и изящно... |
|
![]() |
![]() |
![]() |
#19 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
![]()
да как-то неохота лишнюю работу делать, т. е. имею в виду целиком число сравнивать, когда только половины достаточно.
и потом я делаю не для себя а одной девчонке, которая ну мягко говоря не понимает, поэтому такие слова как shl shr; not and or (в побитовом смысле) и xor (во всех смыслах) для неё тёмный лес ![]() ![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
в турбо паскале | natalialove | Фриланс | 8 | 31.05.2010 19:11 |
в турбо паскале | tanyalove | Помощь студентам | 12 | 26.05.2010 20:05 |
турбо паскале | tanyalove | Помощь студентам | 2 | 19.05.2010 20:10 |
турбо паскале | tanyalove | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 18.05.2010 20:08 |
в турбо паскале | tanyalove | Помощь студентам | 17 | 29.04.2010 13:16 |