如果要交换两个数(比如a和b)的值,一般情况下,我们会想到使用第三个变量c作为一个临时存放的工具。
举个例子:
a=1;
b=2;
c=a;
a=b;
b=c
通过这样的方式来达到交换a和b的值。那么如何在不使用第三个变量的情况下交换两个数的值呢?以下有一个方法:
我们还是令a=1,b=2,所以a<b,然后开始进行交换:
//a是小的数,b是大的数,求出两个数之间的差值,将它赋给a
a=b-a;
//大的数(b)减去这个差值,得到较小的数,将它赋给b
b=b-a;
//小的数加上差值,得到大的数,将它赋给a,完成交换
a=b+a;