Если вы думаете, что поступаете умно, не используя 3-ю переменную, то проведите несколько тестов производительности и вы увидите, что гораздо более быстрый способ - использовать 3-ю int
для временного хранения переменной.
В любом случае, я решил проблему с помощью побитового оператора XOR:
a ^= b;
b ^= a;
a ^= b;
Это небольшая уловка.
int a = 5;
int b= 10;
a = a+b;
b = a-b; /* Really (a+b) - b i.e. a */
a = a-b; /* Really (a+b) - a i.e. b */
да, вы можете это сделать, используя операцию плюс / минус.
Example:
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;