一般情况下我们要实现a和b交换都是使用一个中间变量交换 比如a=7 b=6 我们一般会使用一个零时变量temp来实现 temp=a;a=b;b=temp;这样来实现数据的交换,在这里我发现了一个不需要中间变量就完成数据交换的方法。
if (a>b)
{
b=a-b;
a=a-b;
b=a+b;
}
else
{
a=b-a;
b=b-a;
a=b+a;
}
简化一点:
a=a+b;
b=a-b;
a=a-b;
这样同样的可以实现两个数的交换,但这样的做法并不提倡。定义零时变量固然会占内存,但是现在的内存足够大了而且如果定义在一些子函数内temp是存储在栈内的。用完就会释放。这样做就加大了对cpu的工作量因为这里要判断而且不断的加法减法赋值等操作效率是底下的。这里只做为一种思路一种方法,也许以后在某些方面就要借鉴它也说不准。
如果有错指正哈。咱长的也不像数学家,反正思路是这样。