二楼的方法有一些限制条件。
使用方法2时,会有一些数据溢出或精度损失。如果发生了这种情况,结果就不准确了。
使用方法3时,只能应付整数。如果碰到浮点数就不行了。
还有一种方法是乘除法:- a = a * b;
- b = a / b;
- a = a / b;
复制代码 当然,这种方法也会有精度缺失。
如果非要指定不使用中间变量,最简单的一个方法是使用栈数据结构- push a;
- push b;
- a = top();//获得栈顶值,即b
- pop();//将b出栈
- b = top();//获得栈顶值a
- pop();
复制代码 当然这个方法也有缺陷。它使用了额外的内存空间,临时变量也使用了额外的空间。所以严格来说,是不符合条件的。 |