|
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951
|
||||
Нетривиальные задачи по программированию17.06.2009, 21:49. Показов 126325. Ответов 132
Метки нет (Все метки)
Наверное каждый из нас сталкивался с нетривиальными задачами (на олимпиадах, в Интернете, подкидывали друзья, может у кого-то родилась своя). Речь идет не о каких-то сложных задачах, а о интересных головоломках, которые решались бы с помощью какого-нибудь нетривиального трюка, требовали соображалки и вызывали бы интерес и улыбку.
Эти задачи не забываются и я предлагаю вспомнить и выложить их здесь. Таким образом, возможно, соберется небольшой "задачник" для уважаемых форумчан. Это будет полезно. Каждый сможет размять мозг и проверить знания, решая такие задачки. В конце концов это просто забавно Чтобы не было флуда и беспорядка, попробую набросать правила топика:* Задача должна быть действительно оригинальной и интересной, своеобразной головоломкой. * Автор, который публикует задачу, должен располагать её решением. * Решение задачи не должно быть слишком большим, а задача - слишком трудоемкой и требующей много времени. * Допускаются известные и классические задачи. * Публиковать любые решения в топике только под тегом CUT. Начну пожалуй с задачи, которая уже встречалась на этом форуме и стала уже классической:
12
|
||||
| 17.06.2009, 21:49 | |
|
Ответы с готовыми решениями:
132
нетривиальные алгоритмы задачи по программированию Задачи по программированию |
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
| 12.11.2009, 21:08 | |
|
cristaloleg,
чисто предположение
а что если просто поделить одно на другое?правда со знаком надо что-то решить..это не шутка случаем ?
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|||
| 12.11.2009, 22:50 | |||
|
типа такого
В случае с unsigned результат i - 10 будет UINT_MAX - 10. В случае с unsigned short результат i - 10 равен UINT_MAX - 10 по C99 в случае, если не любой unsigned short влезет в int (sizeof(short)==sizeof(int); i приводится к unsigned согласно 6.3.1.1, затем 10 приводится к unsigned согласно 6.3.1.8), и -10 в противном случае (в любом случае по C90, а также по C99, если большой int).
1
|
|||
|
|
|
| 12.11.2009, 23:00 | |
|
Somebody,
по поводу твоего ответа
про C99 - надо будет стандарт почитать и поэкспериментировать. Я только на "обычном" Си проверял. Однако могу сказать сразу: не "UINT_MAX - 10", а "UINT_MAX - 9". При этом в битовом представлении значение этой константы совпадает с битовым представлением константы (int)-10. Я в точности не смог понять объяснение, видимо ты торопился и проглатывал слова, но если оно базируется на том, что UINT_MAX-9 и (int)-10 - разные константы, то это не так
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 12.11.2009, 23:12 | |
|
Cut
Ну да, имел в виду UINT_MAX - 9. А вариант с C99 хочется на практике проверить, но надо чем-то скомпилировать с поддержкой C99, но чтобы размер int был равен short. Я не очень представляю, чем так можно.
0
|
|
|
|
|
| 13.11.2009, 11:16 | |
|
Somebody,
qqq
Проверил для C99 - утверждение "i приводится к unsigned" НЕ верно. В любом случае, даже если оно и было бы верно, то твои пояснения неправильные (о чём я в 84-м посте упомянул)
Подсказка
Разные результаты будут, например, в 64-битном режиме, когда sizoef(int)==4 - т.е. по сути дела в "нормальной" настроке под 64-битный режим. Первый вариант (unsigned) будет ломаться, второй (unsigned short) будет нормально проходить
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|||
| 13.11.2009, 16:38 | |||
|
Что не так?
По 6.3.1.8 the integer promotions are performed on both operands. При этом по 6.3.1.1 If an int can represent all values of the original type (что в данном случае не так), the value is converted to an int; otherwise, it is converted to an unsigned int. These are called the integer promotions.
0
|
|||
|
|
||||
| 13.11.2009, 16:56 | ||||
|
Едем дальше
![]() В общем, получается так, что задача не до конца продумана. В любом случае подсказка висит, правда для тебя это уже будет не подсказка, а очевидный ответ. Но если интересно - подумай. Есть более "жизненный" ответ (собственно, задачу не из головы придумал, а на освновании ситуации, с которой столкнулись в жизни)
0
|
||||
|
6 / 6 / 0
Регистрация: 27.06.2009
Сообщений: 16
|
|
| 18.11.2009, 22:10 | |
|
наибольшее из двух чисел
(a+b+(a-b)*(((a-b)or 1)mod 2)) div 2
1
|
|
|
6 / 6 / 0
Регистрация: 27.06.2009
Сообщений: 16
|
|
| 18.11.2009, 22:53 | |
|
формула
формула получается из обычной (a+b+abs(a-b))/2, если расписать abs(x) = x*((x or 1)mod 2), т.е. сначала делаем число нечетным, потом берем остаток от деления на 2, который будет равен 1, если число положительное и -1, если отрицательное
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 19.12.2009, 08:12 | ||
|
0
|
||
|
3 / 3 / 0
Регистрация: 26.03.2009
Сообщений: 50
|
||||||
| 01.02.2010, 13:30 | ||||||
0
|
||||||
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
| 01.02.2010, 13:42 | |
|
Jekidollar, это не задача по программированию. Это абсолютно идиотическое задание на "знание" приоритета операций в языке, которым некоторые работодатели пугают незадачливых кандидатов.
0
|
|
|
|
||
| 01.02.2010, 13:51 | ||
|
0
|
||
| 01.02.2010, 13:51 | |
|
Задачи по программированию в С++
Олимпиадные задачи по программированию Ищу задачи по программированию c++ Подскажите задачи по программированию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|