Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.95/622: Рейтинг темы: голосов - 622, средняя оценка - 4.95
Эксперт С++
 Аватар для Phantom
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951

Нетривиальные задачи по программированию

17.06.2009, 21:49. Показов 126596. Ответов 132
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Наверное каждый из нас сталкивался с нетривиальными задачами (на олимпиадах, в Интернете, подкидывали друзья, может у кого-то родилась своя). Речь идет не о каких-то сложных задачах, а о интересных головоломках, которые решались бы с помощью какого-нибудь нетривиального трюка, требовали соображалки и вызывали бы интерес и улыбку.
Эти задачи не забываются и я предлагаю вспомнить и выложить их здесь. Таким образом, возможно, соберется небольшой "задачник" для уважаемых форумчан. Это будет полезно. Каждый сможет размять мозг и проверить знания, решая такие задачки. В конце концов это просто забавно Чтобы не было флуда и беспорядка, попробую набросать правила топика:
* Задача должна быть действительно оригинальной и интересной, своеобразной головоломкой.
* Автор, который публикует задачу, должен располагать её решением.
* Решение задачи не должно быть слишком большим, а задача - слишком трудоемкой и требующей много времени.
* Допускаются известные и классические задачи.
* Публиковать любые решения в топике только под тегом CUT.

Начну пожалуй с задачи, которая уже встречалась на этом форуме и стала уже классической:
#0. Поменять значения двух целочисленных переменных одного типа, не используя дополнительной переменной.
#1 Написать самую короткую программу без операторов ввода и операторов работы с файлами, которая в точности выводит на экран (или на печать) свой собственный текст (исходный код).
#2 Вводятся три числа A, B и C. Нужно распечатать их по убыванию. В программе использовать только один оператор switch и ничего больше.
первая взята с форума, вторая здесь, третья моя, недавно родилась, позабавил друзей.
12
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2009, 21:49
Ответы с готовыми решениями:

нетривиальные алгоритмы
Подскажите, пожалуйста, примеры нетривиальных алгоритмов. Алгоритмы многие мне известны, но вот термин нетривиальные алгоритмы мне...

задачи по программированию
Задача А. Правильное управление (Online) Задачу добавил: alef Успешно сдано решений: 6 Предыстория Много лет тому вперед в...

Задачи по программированию
Добрый вечер друзья, помогите пожалуйста с задачами по С++: 1)Дана матрица 6х6 целого типа. Создать одномерный массив, содержащий...

132
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
18.06.2009, 22:14
Студворк — интернет-сервис помощи студентам
Ты ещё вот так напиши: "4 * 6 // 1 5" и скажи, что за двумя слэшами камменты идут
4
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
18.06.2009, 22:21
Ну, если на Си(++), то так и есть.
Надо подумать, имеет ли право на жизнь и такое решение..... Ибо оно также не противоречит условию задачи - если запись реализуется на языке программирования; а в условии нигде не сказано, что два знака деления не могут идти подряд, образуя комментарий в Си-стиле. Тогда на Си есть и альтернативный вариант с /* */.
0
19 / 19 / 4
Регистрация: 30.04.2009
Сообщений: 142
18.06.2009, 22:42
и расставить между ними знаки операций (плюс, минус, умножить, делить) и скобки (если они нужны)
Про возведение в степень тут вроде ничего не сказано
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
18.06.2009, 22:48
Цитата Сообщение от Sagara Посмотреть сообщение
Про возведение в степень тут вроде ничего не сказано
Он просто издевается, не поддавайся на провокации
1
 Аватар для Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
19.06.2009, 10:02
Решение
6/(5/4-1)
4/(1-5/6)

Evg,за задачу и правда спасибо
6
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
19.06.2009, 10:04
А вот это уже правильно
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
19.06.2009, 12:02
Humanitis, целый час просидел..так и не решил... уже начал думать что развод!)
респект тебе!
0
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
19.06.2009, 12:28
Evg, блин про цыферки жестокая задача((( заснуть не мог, пока не доперло до меня) спасибо)
0
14 / 10 / 1
Регистрация: 28.04.2009
Сообщений: 219
19.06.2009, 15:13
Jazon_deenAlt, ну да, да.
(Мне вот ещё другой вариант тогда пришёл сразу, с преобразованием в двоичные векторы с $A и $B первых единиц. В Кнуте же, кроме первого (такой как у всех нас, с модулем) ещё два, совсем других...)
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
19.06.2009, 21:33
Evg,не увиливай от ответа. Мое решение абсолютно правильное и абсолютно соответствует всем требованиям задачи:
1. Даны 4 числа: 1, 4, 5, 6 - выполнено.
2. Нужно их написать в произвольном порядке - выполнено.
3. расставить между ними знаки операций (плюс, минус, умножить, делить) - выполнено.
4. скобки (если они нужны), - выполнено (скобки не нужны).
5. чтобы результат равнялся 24. - выполнено.
6. Каждое число должна быть использована ровно 1 раз. - выполнено.
7. Двузначные числа составлять нельзя. - выполнено.

Укажи конкретно, какому именно требованию противоречит мое решение?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
19.06.2009, 21:52
CheshireCat, извини, спортить с тобой не хочу. Ибо смысла в этом не вижу, поскольку твоё желание вижу в одном из двух:
1. Ты не смог решить задачу, и теперь занимаешься ерундой
2. Я тебе не нравлюсь и у тебя есть жалание надо мной поиздеваться
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
19.06.2009, 21:59
Спасибо за ответ. Вопрос закрыт.
0
6 / 6 / 0
Регистрация: 27.06.2009
Сообщений: 16
27.06.2009, 22:56
попробуйте решить следующую задачку
есть код на паскале
Pascal
1
2
3
4
5
6
7
8
for i:=1 to 6 do
begin
  case i of
    1,3,5:x:=1;
    2,4,6:x:=128;
  end;
  writeln(x);
end;
нужно представить его в виде
Код:

Pascal
1
2
3
4
for i:=1 to 6 do
begin
  writeln(формула);
end;
где формула - выражение, состоящее из двух операций, так, чтобы результат выполнения был одинаковым.
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
27.06.2009, 23:49
Чтоб в две операции - надо подумать
0
 Аватар для EnzoMatrix
121 / 121 / 14
Регистрация: 14.03.2009
Сообщений: 462
27.06.2009, 23:59
Цитата Сообщение от NuM Посмотреть сообщение
где формула - выражение, состоящее из двух операций, так, чтобы результат выполнения был одинаковым
побитовый сдвиг....
128^(младший бит)
^-возведение в степень

Добавлено через 4 минуты 7 секунд
упс, косяк, перепутал в каком случае 128, а в каком 1
вот
остаток от деления в помощь
0
6 / 6 / 0
Регистрация: 27.06.2009
Сообщений: 16
28.06.2009, 00:08
EnzoMatrix, в паскале нет операции возведения в степень
вот операции, которы можно использовать: +, -, *, div, mod, and, or, xor, not, shr, shl
0
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.06.2009, 11:36
Вот что-то накарябал.
Pascal
1
2
3
4
5
6
7
8
uses crt;
var i:integer;
begin
clrscr;
for i:=1 to 6 do
writeln((byte(255+i mod 2)div 2)+1);
readln
end.
0
6 / 6 / 0
Регистрация: 27.06.2009
Сообщений: 16
28.06.2009, 11:52
Puporev, в вашем решении используется 4 операции(+, mod, div, +) и byte, а нужно сделать используя только 2 операции из списка в моем предыдущем посте
0
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.06.2009, 11:56
Извини, внизу не прочитал.
0
Эксперт С++
 Аватар для Phantom
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951
28.06.2009, 12:16  [ТС]
Puporev, прячьте, пожалуйста, решение под тегом CUT, чтобы ненароком не отбить интерес у тех, кто решает параллельно или будет решать позже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.06.2009, 12:16

Задачи по программированию в С++
Не могу никак понять программирование на С++ ! Помогите решите мне хоть одну из этих задач я постараюсь понять! П.5.16.Правил ...

Олимпиадные задачи по программированию
Пробуйте :) Окружной этап всероссийской олимпиады школьников по информатике Москва, 2 декабря 2012 Во всех задачах входные...

Олимпиадные задачи по программированию
Здравствуйте, где можно найти задача по программирования и их решение.

Ищу задачи по программированию c++
Надо сборник задач по c++ Чтобы были задачи на циклы, масивы, функции. Желательно с объяснением или решением

Подскажите задачи по программированию
Всем, привет. Начал изучать C++ и qt. А задачи самому себе не придумать. Хоть тресни. Не подкинет ли кто-нибудь интересные задачи. Просто в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru