Тема: Программистские головоломки. |
Grossmutters_G
Поручик
Сообщений: 1882
|
er_mac пишет: ну ответ покажешь?
Твой код очень даже имеет место быть.
Просто есть сообрежение намного проще:
Итак, для того, чтобы двоичное число делилось на 15 нужно, чтобы сумма его разрядов, составленная так же, как и для определения делимости, например, на 3 десятичных чисел, представленных в 16-тиричном виде, была равна F. Причем, совершенно не обязательно хранить ведущие и завершающие нули.
Например, число 1FE (111111110) делится на 15. т.е. для наших нужд оно вообще представимо как FF (1FE>>2).
а)число 1EEE53 на 15 делиться не должно, потому, что:
1+E=F;
F+E = 1D = 1+D = E
E+E = 1C = 1+C = D
D+5 = 12 = 1+2 = 3
3+3 = 6
6 не равно F - не делится
б)Число 10007F16 должно:
1+0+0+0 = 1;
1+7 = 8;
8+F = 17 = 8;
8+1 = 9;
9+6 = F;
F = F - делится...
Проверка на калькуляторе:
а) не делится; б) делится...
Каюсь за такую скудную доказательную базу, но "оно работает!"© а далее реализация, как и для метода Евклида Чем элегантнее, тем краше
Т.е. код для некоторого числа может выглядеть примерно так:
bool isdivbyfifteen(ulong a){
ulong c = a & 0xFL;
ulong tmp = a>>4;
while (tmp>0){
c=c + tmp & 0xFL;
if(c>0xF)
c = c & 0xF0L + c & 0xFL;
tmp>>4;
}
return (c==F)?true:false;
}
|
---------------------- |
"Было бы величайшей ошибкой думать...",-В.И.Ленин
|
|
|
15 Марта 2006 15:16 |
|
|
Кот Матроскин
Бывший океанец
Сообщений: 9819459
|
Grossmutters_G пишет: Твой код очень даже имеет место быть.
Просто есть сообрежение намного проще:
Итак, для того, чтобы двоичное число делилось на 15 нужно, чтобы сумма его разрядов, составленная так же, как и для определения делимости, например, на 3 десятичных чисел, представленных в 16-тиричном виде, была равна F. Причем, совершенно не обязательно хранить ведущие и завершающие нули.
Например, число 1FE (111111110) делится на 15. т.е. для наших нужд оно вообще представимо как FF (1FE>>2).
а)число 1EEE53 на ...
да, действительлно просто и красиво =)
|
|
|
15 Марта 2006 15:21 |
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
|
neponjatnyj
Юнга
Сообщений: 16
|
Grossmutters_G пишет: Простая задача.
Представьте, что у вас есть код некоторого приложения, причем код этот у вас есть как на Ява, так и на С++ для операционных систем Виндовс и Линух. Вашим навязчивым желанием является предотвращение запуска второй локальной копии скомпилированного из данного исходного кода приложения для любой из этих операционных систем. Вопросы:
1) что нужно добавить в исходники, при компилировании данного кода по Виндовс?
2) под Линух?
3) при выполнении данного кода в качестве Ява-приложения?
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
Проверь второй параметер!
Wie es in Java gemacht wird weiß ich nicht.
|
|
|
04 Апреля 2006 21:38 |
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
|
neponjatnyj
Юнга
Сообщений: 16
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
|
neponjatnyj
Юнга
Сообщений: 16
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
neponjatnyj пишет: Я конечно в Java не спец. но думаю там мьютексы тоже имеются, даже уверен. Мьютекс реалиzируется чрез ось, а значит должно работать! А с кодом тут уж ты студент сам работай
Нет, ты не понял.. Во-первых, на сколько я знаю, в Java нет мьютексов, т.е. явно не создашь системный объект - иначе, какая переносимость?! Во-вторых, я знаю Я тут просто задачки задаю От нечего делать, а кому интересно, те их решают Игра такая, просто же! А иногда и полезно
|
---------------------- |
"Было бы величайшей ошибкой думать...",-В.И.Ленин
|
|
|
04 Апреля 2006 22:11 |
|
|
neponjatnyj
Юнга
Сообщений: 16
|
Grossmutters_G пишет: Нет, ты не понял.. Во-первых, на сколько я знаю, в Ява нет мьютексов, т.е. явно не создашь системный объект - иначе, какая переносимость?! Во-вторых, я знаю Я тут просто задачки задаю От нечего делать, а кому интересно, те их решают Игра такая, просто же! А иногда и полезно
Ааа, ясненько! А ответы (когда) будут?
|
|
|
04 Апреля 2006 22:14 |
|
|
Grossmutters_G
Поручик
Сообщений: 1882
|
|
neponjatnyj
Юнга
Сообщений: 16
|
|
Flammberg
Бывший океанец
Сообщений: 9819459
|
|
Кот Матроскин
Бывший океанец
Сообщений: 9819459
|
|
Goscha
Капитан 1го ранга
Сообщений: 6681
|
|
sanekHH
Бывший океанец
Сообщений: 9819459
|
|
sanekHH
Бывший океанец
Сообщений: 9819459
|
вот тебе ЧАВО по взлому мыл
учись но не ломай
|
|
|
28 Июня 2006 18:10 |
|
|
Goscha
Капитан 1го ранга
Сообщений: 6681
|
|