首页 > 解决方案 > 如何编写一个算法来交换两个变量而不创建第三个变量?

问题描述

如何在不创建第三个变量的情况下交换两个变量?例如。a=10 b=20 那么,我如何编写一个算法来将这两个变量交换为 a=20 b=10 而无需在我的逻辑中添加另一个变量 c ?

标签: algorithm

解决方案


您可以使用此技术

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

编辑 1:正如 pjs 所评论的,上述技术可能会在某些语言中溢出,因此您可以使用 XOR:

a=a^b
b=a^b  ## which is b= (a^b)^b=a
a=a^b  ## which is b= (a^b)^a=b

推荐阅读