Как Вы подкачиваете две целочисленных переменные, не используя никого если условия, кастинг или дополнительные переменные? [закрытый]

6
задан Mat 15 September 2012 в 16:38
поделиться

6 ответов

Если вы думаете, что поступаете умно, не используя 3-ю переменную, то проведите несколько тестов производительности и вы увидите, что гораздо более быстрый способ - использовать 3-ю int для временного хранения переменной.

В любом случае, я решил проблему с помощью побитового оператора XOR:

a ^= b;
b ^= a;
a ^= b;
13
ответ дан 8 December 2019 в 02:26
поделиться
a=a+b;
b=a-b;
a=a-b;
11
ответ дан 8 December 2019 в 02:26
поделиться

Это небольшая уловка.

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 */
4
ответ дан 8 December 2019 в 02:26
поделиться

просто попробуйте это

a=a+b;
b=a-b;
a=a-b;

и все

3
ответ дан 8 December 2019 в 02:26
поделиться

да, вы можете это сделать, используя операцию плюс / минус.

Example:
num1 = num1 + num2;                
num2 = num1 - num2;                
num1 = num1 - num2;
3
ответ дан 8 December 2019 в 02:26
поделиться
a=a+b
b=a-b
a=a-b

Вот так!

3
ответ дан 8 December 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: