Как поменять значения двух целочисленных переменных между собой без использования третьей переменной

Решил продолжить цикл статей посвящённых решению типовых задач по программированию.

Постановка данной задачи ясна уже из её названия.

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

Способ 1. Использование битовых операций (исключающего «или»)

Для Delphi и других языков семейства Pascal:

 Для C-подобных языков:

 Способ 2.Использование арифметических операций

Данный способ реализуется везде одинаково:

 При желании этот же способ можно реализовать в одну строку, если синтаксис языка позволяет. Например, в C++, C# или Java:

Способ 3. Использование кортежей

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

 Для других языков требуется создавать переменную соответствующего типа. Например, в C#:

Если целочисленные значения участвуют непосредственно в инициализации кортежа, как в приведённом примере, такой подход ещё можно условно назвать корректным. В остальных случаях кортеж становится вспомогательной (третьей) переменной и такое решение уже не соответствует постановке задачи.

Мы рассмотрели три способа решить задачу обмена значениями двух целочисленных переменных без использования третьей. Очевидно, что её решение действительно не представляет собой ничего сложного и доступно даже для начинающего программиста.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *