算法-不使用中间变量交换两个数

这个应该是烂大街的一个题目了,闲来无事,随便写写,常用的有三种方法,加减法,乘除法,异或法:

1.加减法,这个是最容易的想到的,不过需要注意的,如果在处理浮点型数字的时候可能会精度丢失:

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

2.乘除法,和加减法类似,也会有精度丢失,不过出现的一个问题是除数不能为0:

    a=a*b;
    b=a/b;
    a=a/b;

3.异或法,这个需要记住的一点就是变量a异或b的异或值异或b等于a:

    a=a^b;
    b=a^b;
    a=a^b;
原文地址:https://www.cnblogs.com/xiaofeixiang/p/4554340.html