如果不引入第三个变量,你还有几种方法交换ab两个数?
int a=10; int b=20; 怎么交换a,b?
1.引入临时变量temp(引入第三变量)
优点:便于理解,推荐使用
int temp=a; a=b; b=temp;
2.a+b法(不引入第三变量)
缺陷:加法在二进制运算中,当a,b数值本来就比较大时,可能进位,就会造成溢出
a=a+b; b=a-b; a=a-b;
🍉运算步骤:
🍉运行结果:
3.a^b法(不引入第三变量)
想详细了解异或^,请移步位运算
较第一种方法缺点:难理解
较第二种方法优点:不会进位,不会溢出
a=a^b; b=a^b; a=a^b;
🍉运算步骤:
🍉运行结果:
🍉方法二和方法三相似点和记忆:左侧都依次是aba