如何进行交换?
A = A + B
B = A + B
A = B + A
我不同意它换成书!
书籍选项包括" a和b"的值的补充。 ,"否定和b"。希望这些选项也不能令人满意吗???
答案 0 :(得分:9)
正确的算法应该是:
a = a + b
b = a - b
a = a - b
答案 1 :(得分:7)
交换使用XOR执行,通常在圆圈内写为加号;例如:
a := 5
b := 7
a := a xor b (2)
b := a xor b (5)
a := b xor a (7)
答案 2 :(得分:0)
实际上,可以通过两种方式完成:
int a = 5, b = 10;
使用加法(+)和减法( - )
a = a + b;
b = a - b;
a = a - b;
使用多个(*)和分区(/)
a = a * b;
b = a / b;
a = a / b;
答案 3 :(得分:0)
我最近接受了Java新生的面试,面试官要求我进行两个数字的交换(但只能换一行)。
也可以在一行中交换两个数字,而无需使用temp变量。
逻辑很简单,
x在同一行中与y相加,y被指定为x,并减去它们的总和。
执行这一行算术运算后,数字被交换了。 (仅一行)
public class SwapInOneLine {
public static void main(String[] args) {
int x = 10; int y = 20;
System.out.println("Before Swaping: x = " + x + " and y= " + y);
x = x + y - (y = x);
System.out.println("After Swaping: x = " + x + " and y= " + y);
}}
输出:
掉期前:x = 10,y = 20
交换后:x = 20,y = 10
答案 4 :(得分:0)
我们需要遵循3个步骤:-加,减和减。
您也可以选中此youtube video,其中更详细地说明了概念。
让我们说您想交换4和5。所以,
第1步(+):-首先将两个数字相加4 + 5 =9。然后用和替换一个数字。如果您在图片中看到我们已经替换了4。
第2步(-):-从较大的数字中减去较小的数字。因此9 -5 = 4并用该值替换其他数字。就像我用4代替5。
步骤3(-):-减去刚得到的另一个结果,并替换为9。然后将数字互换。
答案 5 :(得分:0)
我们可以为此使用XOR (^)。 XOR 的优点:由于 XOR 在位级上工作,因此它比任何其他操作花费的时间少得多。 如果 a = 5 且 b = 7 然后交换:
a = a ^ b
b = a ^ b
a = a ^ b
其中 '^' 表示 XOR。 结果 : a = 7 和 b = 5