Найти в Дзене
Я познаю Питон

Простые, но интересные задачки по программированию

Давно ничего не писал, и давно ничего не программировал. Вернуться к изучению у меня не получается. Да и не сильно тянет, если честно (хотя идеи в голове бродят). И всё же забрасывать этот блог полностью не хочется.Хоть можно сказать, что я его забросил, но пришло время исправляться.

Чтобы не писать совсем уж несвязанные с программированием вещи, я решил восстановить хоть что-то и написать простенький код. Такой, чтобы не сильно запариваться с синтаксисом, и не сильно ломать мозг. Но так, чтобы была маленькая программа, которая решает какую-нибудь задачу.

Решать классические задачи в стиле "Найди меньшее из двух" не хотелось, поэтому пошёл в Яндекс с целью найти что-нибудь поинтереснее. И "такое есть у меня", сказал мне поисковик. Вот статья, тык, с пятью простыми, но интересными задачами. Как написал автор "Прислал работодатель в качестве тестового задания. Некоторые уж совсем простые".

Все задачи я сюда переносить не буду, но про одну всё-таки напишу.

Объявлены две числовые переменные a и b. Необходимо сделать так, чтобы без объявления других переменных в результате работы алгоритма значения переменных поменялись местами. Например, если изначально a = 4, b = 5, то в результате алгоритма стало a = 5, b = 4. Применять можно только операции присваивания и арифметические операции с числами и значениями переменных.

Интересная, нетривиальная, но простая задача. На уроках по программированию такое решалось через третью переменную. Примерно так:

c = a
a = b
b = c

Но у нас в условии написано, что так делать нельзя.

Интересно то, что с помощью языка программирования Питон задача решается на раз-два. На скриншоте как раз такое решение:

Читерское решение задачи на PYTHON
Читерское решение задачи на PYTHON

Есть другое решение, которое подойдёт для любого языка программирования. Расписывать про него не буду, оставлю вопрос незакрытым. Вы сами можете немного поломать голову. Если не выходит, то в комментариях по ссылке люди накидали ответов. Но это путь не для героев.

Пока я ограничился одной задачей, для восстановления атмосферы программирования, так сказать. В будущем надеюсь подумать над всеми оставшимися. Тем же предлагаю заняться вам, если вы начали изучать программирование, и вам хочется интересных задачек.=)

Наука
7 млн интересуются