![]() |
|
Модераторы: Poseidon |
![]()
|
|
| KasMP |
|
||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: 1 Всего: 30 |
Silent, мне даже слов не хватает
Ну, видимо, все-таки совсем не дурак
В некоторых местах я не допоняла, где-то совсем не поняла
Это сообщение отредактировал(а) KasMP - 10.12.2008, 22:13 |
||||||||||||||
|
|||||||||||||||
| KasMP |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: 1 Всего: 30 |
Буду разбирать уже написанный код (за что большое человеческое спасибо автору
Итак,
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: нет Всего: 250 |
Это подсказка компилятору, сделать функцию встраиваемой (т.е просто куском кода, а не функцией). Выкинь ее и не забивай голову пока. bool - это логический тип, может быть true (1) или false (0) если числовой тип конвертируется в bool то 0 это false, все остальное есть true; if (25) .. // выполнится условие так как 25 не ноль, а значит true if (0) // не выполнится потому как условие false << >> это битовые сдвиги: 00001000 >> 2 = 00000010 00001000 << 1 = 00010000 b |= 1; аналогична b = b|1; b &=1; b = b&1; || - логическое_или . Если один из аргументов true, то результат true | - побитовое_или . то же самое что и логическое, но применительно к каждому бита аргумента: т.е 11100011 | 00001111 = 11101111 для логических сравнений битовое представление не важно поэтому true || false = true 22 || 0 = true && - логическое_и. Если оба аргумента true то результат true. & - побитовое_и т.е 11100011 & 00001111 = 00000011 true && false = false 22 && 0 = false Округляет x до ближайшего меньшего целого. Это сообщение отредактировал(а) mes - 11.12.2008, 13:30 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: нет Всего: 250 |
! означает логическое_нет, а != соответсвенно не_равно,
Это сообщение отредактировал(а) mes - 11.12.2008, 13:37 |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: нет Всего: 250 |
если известно максимальное кол-разрядов, то столько и циклов и делать. В случае нехватки разрядов циклы просто останутся вырожденными..
а меньше значит может ? например для числа 2221 верны ли такие "перестоновки" как 22, 21 и 212 ? если да то подход с простой перестановкой не подходящее решение. а при уменьшении какую цифры выкидывать, вначале в середине или конце ? ;) тут тоже рождается перебор, который мпожно решить используя как помощник битовую комбинацию, о чем предлогал Silent.
максимально простое это с наименьшим количеством делителей ? Это сообщение отредактировал(а) mes - 11.12.2008, 14:39 |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: нет Всего: 250 |
удалено...
Это сообщение отредактировал(а) mes - 11.12.2008, 21:14 |
|||
|
||||
| KasMP |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: 1 Всего: 30 |
mes, большое спасибо за желание помочь
Вообще вчера я разобралась со всеми неизвестными операторами (только linear не до конца поняла, а просто удалила - из его описание понятно, что использовать его необязательно), сегодня утром - со смыслом каждой функции и вообще каждой строчки, кроме одной Так и не удалось понять Функция Good проверяет, а имеет ли смысл подстановка y. Чтобы подстановка в нашем случае была правильной, она не должна содержать одинаковых цифр (следует из условия "каждая цифра в полученном числе может встречаться не больше раз, чем в первоначальном"). Понятно, что мы (вернее, Silent) создает так называемый флажок, на котором отмечает те цифры-позиции, которые уже были (изящно отмечает
Но причем здесь вторая часть условия
Все попеременно Нет Например, в множестве {43; 139; 71; 223; 457} максимальным простым будет 457 (числа, имеющие хоть какие-нибудь делители, рассматривать не за чем). Выглядит красиво |
||||||
|
|||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: нет Всего: 250 |
не смотри... там много глупого кода.. вот переписал не используя битового представления... вроде полегче должно смотреться проверил - вроде все комбинации находит проверку на простоту оставил тебе для разминки )
примечание : аn (a1,a2.. ) - показывает что в разряд n результата встанет разряд со значением переменной от исходника то есть если а3 == 5 то в результате 3й разряд будет взят из 5го разряда источника. если аn == 0 означает что разряд n не используется Это сообщение отредактировал(а) mes - 14.12.2008, 17:02 |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |