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

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

17.06.2009, 21:49. Показов 126187. Ответов 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
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
11.02.2013, 13:53
Студворк — интернет-сервис помощи студентам
А вот про цифры 1 4 5 6 я за 15 минут вот такое решение накидал... само как то пришло быстро! в шоке был=)

Кликните здесь для просмотра всего текста
(6-4)*(5+1) = 24


Верно же?)
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
11.02.2013, 13:54
Цитата Сообщение от Temoxa Посмотреть сообщение
Верно же?)
Нет. Ты получил 12, а не 24.
0
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
11.02.2013, 14:00
вот ппц)))) затупана словил)))) извиняйте) щас буду дальше думать))
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,361
19.02.2013, 23:06
Цитата Сообщение от Phantom Посмотреть сообщение
#0.Поменять значения двух целочисленных переменных одного типа, не используя дополнительной переменной.
Pascal
1
2
3
a:=a+b;
b:=a-b;
a:=a-b;
1
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
01.04.2013, 21:58
Цитата Сообщение от Новичок Посмотреть сообщение
a:=a+b;
b:=a-b;
a:=a-b;
Если a+b достаточно большие чтоб вызвать переполнение, то результат будет неверным из за потери переноса. То есть ответ в общем случае неверный.
Надо так:
Кликните здесь для просмотра всего текста

a = a xor b;
b = b xor a;
a = a xor b;
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
01.04.2013, 22:22
Цитата Сообщение от paskal Посмотреть сообщение
Если a+b достаточно большие чтоб вызвать переполнение, то результат будет неверным из за потери переноса. То есть ответ в общем случае неверный.
Надо так:
Кликните здесь для просмотра всего текста

a = a xor b;
b = b xor a;
a = a xor b;
В подтверждение своей теории подбери пару чисел, обмен которых не сработает через сложения, но сработает через xor'ы
1
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
01.04.2013, 23:29
Гм. Проверил. И правда перенос сперва теряется, а потом еще раз теряется, что в результате дает правильное число.
0
0 / 0 / 0
Регистрация: 09.04.2014
Сообщений: 108
10.04.2014, 16:33
Подскажите реально ли написать программу которая бы могла посчитать вероятность ошибок(цифр) от 1 до 3.
вот чтобы было проще говорить количество ошибок за март месяц, можно как то высчитать вероятность следующей ошибки?
Скачать ошибки.xls
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
10.04.2014, 16:38
Цитата Сообщение от paskal Посмотреть сообщение
Если a+b достаточно большие чтоб вызвать переполнение, то результат будет неверным из за потери переноса. То есть ответ в общем случае неверный.
Надо так:
Кликните здесь для просмотра всего текста
a = a xor b;
b = b xor a;
a = a xor b;
Так ведь ксоры теряют те же самые переносы на всех разрядах, так что если уж даже через них работает, то перенос здесь значения не имеет.
0
0 / 0 / 0
Регистрация: 19.12.2014
Сообщений: 11
07.03.2015, 12:42
F(0,1,8,10,11,15,16,17,18,20,24,28,30) и,или,не. может кто-нибудь помочь с решением? контрольная по теории автоматов.
0
 Аватар для Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
30.05.2017, 02:13
Задача #0. Поменять значения двух целочисленных переменных одного типа, не используя дополнительной переменной.

В условии не запрещается создавать функцию, поэтому в SPL можно написать так:
C#
1
2
f(x,y) <= y,x
a,b = f(a,b)
Добавлено через 11 минут
Цитата Сообщение от Ultrator Посмотреть сообщение
Откройте Кнута, там таких зада-ач...
Вот, одна, помню:
Пусть заданы 3 числовые переменные: A, B, C.
Сделать так, чтобы в C появилось значение, равное min(A, B), при этом, не используя условных переходов.
c=min(a,b)

или я что-то не понял из условия?
0
 Аватар для COKPOWEHEU
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,079
15.09.2017, 08:47
Цитата Сообщение от Ultrator Посмотреть сообщение
Сделать так, чтобы в C появилось значение, равное min(A, B)
Кликните здесь для просмотра всего текста
C = A*(A<B) + B*(B<A);
0
0 / 0 / 0
Регистрация: 07.08.2017
Сообщений: 27
15.02.2018, 18:44
Даны две системы координат. Из центра каждой системы координат выходит по 8 векторов под совершенно разными углами.
Вектор 1 первой системы координат пересекается с вектором 1 второй системы координат в точке (-1,0,0). Первая система координат равна мировой системе координат. Найти положение и поворот второй системы координат относительно первой, чтобы все 8 векторов координатных систем попарно пересекались. 1 с первым, второй со вторым, третий с третьим и так далее за один проход. (составить математическое уравнение не прибегая к алгоритмам языка программирования)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.02.2018, 18:44

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
133
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru