首页 > 试题广场 >

有两整形数 a, b, 如何不使用第三个变量交换 a 和 b

[填空题]
有两整形数 a, b, 如何不使用第三个变量交换 a 和 b 的值?1
a=a+b; b=a-b; a=a-b;
发表于 2019-10-11 18:02:13 回复(1)

c++

void swap(int &a, int &b) {
    a ^= b, b ^= a, a ^= b;
}

py

a, b = b, a
发表于 2019-07-24 17:15:23 回复(3)
a=a-b b=b+a a=b-a 为什么这个不行?
发表于 2019-07-24 22:59:16 回复(13)
将a+b的结果赋值给a,再将a-b的值赋值给b,最后将a-b赋值给a
发表于 2020-04-14 21:07:51 回复(0)
a=a+b; b=a-b; a=a-b;
发表于 2019-11-09 08:44:10 回复(0)

借助数轴

假设a大于b(方便理解)

a=a-b;

b=a+b;

a=b-a;

发表于 2019-10-21 11:42:34 回复(0)
异或
发表于 2021-11-14 18:01:21 回复(0)
a=a+b; b=a-b: a=a-b;
发表于 2021-07-02 08:33:26 回复(0)
a=a+b; b=b-a; b=b/-2; a=a-2b;
发表于 2020-12-05 12:06:28 回复(0)
逻辑或运算
发表于 2020-07-25 15:29:01 回复(0)
a=a+b; b=a-b; a=a-b;
发表于 2020-06-02 00:55:45 回复(0)

python

a, b = b, a

发表于 2020-03-26 15:49:13 回复(0)
        int a=1;
        int b=2;
        int[] nums= {a,b};
        a=nums[1];
        b=nums[0];
发表于 2019-12-07 18:14:07 回复(2)
a=a+b;b=a-b;a=a-b;
发表于 2019-11-21 11:42:39 回复(0)
int a=3; int b=5; a=a+b; b=a-b; a=a-b;
发表于 2019-08-21 11:17:52 回复(0)