题目 假如有x.y两个数,如何在不占用任何额外空间的情况下交换两个数的值? 思路 平时我们在交换两个数的值时,往往会用一个中间数temp来实现效果,现在需要不占用任何额外空间,自然就不能使用这种寻常的方法了:这里可以有两种方法来实现. 方法一 int x = 5; int y = 10; x = x + y; y = x - y; x = x - y; 先将两个数之和附给x,接着x-y自然就是原本x的值,这时候赋值给y,y就拿到了x原本的值.此时x依然是两个数之和,再进行x-y自然就是原本x的值
在语言学习和进行程序设计的时候,我们交换两个变量最常使用的方法是借助temp这个新的变量进行转换,代码如下: ----------------------------------------- <--标准算法--> ----------------------------------------- int a = 3, b = 4; int temp = a; a = b; b = temp; ----------------------------------------- 这种方法易于理解