Наставник (93277)

Классика жанра. Задача по программированию, которую задают на многих собеседованиях

Имеются две переменные X и Y. Требуется поменять значения этих переменных (т.е. сделать так, чтобы значение X лежало в Y и наоборот), не используя при этом третью переменную. Переменные целочисленные одного типа. Значения переменных могут быть любые из области определения этого типа.
Мы платим до 300 руб за каждую тысячу уникальных поисковых переходов на Ваш вопрос или ответ Подробнее
ЛУЧШИЙ ОТВЕТ ИЗ 3
вообще, я думала так

X= X*1 000 000+у - потом остаток от деления,но неизвестно количество цифр ни в Х, ни в Y

подглядела:

1)Y=Y+X - в Y теперь хранится {Y+X}

2)X=Y-X - помещаем в X {Y+X}-X , т.е. в X теперь хранится первоначальное Y

Y= Y-X ,т.е. помещаем в у {Y+X}-X(а X-хранит первоначальное Y)
т.е. в Y теперь первоначальное Y


но и здесь может возникнуть проблема переполнения

потому лучше третью переменную объявить
в том числе и для повышения читаемости кода и облегчения дальнейшей его поддержки
ЕЩЕ ОТВЕТЫ
Хранитель Истины (408558)
кроме Х и Y надо использовать Й...тогда дело пойдёт!
Верховный Наставник (132929)
Выразить X и Y как корни квадратного уравнения и приравнять его значение к Y
Потом просто вычислить корни и присвоить их значение хоть чему. При проверке совпадения с X само собой, что бы идентифицировать их.

ПОХОЖИЕ ВОПРОСЫ