在不使用第三个温度的情况下交换 2 个数字
swapping 2 number without using third temp
我知道如何在不使用临时变量的情况下交换 2 个数字。但是如果 number 为负数,则此算法不起作用。如何在不使用第三个变量的情况下解决这个问题。
a=a+b,
b=a-b
a=a-b
如果其中一个号码是 negative
,则它不起作用。
在此 Link 中,您可以找到在不使用临时变量的情况下交换两个变量中的值的不同方法。它显示了优点和缺点。
它展示了如何用 6 种编程语言来实现。
以下方法摘自link:
加减法:
x = x + y;
y = x - y;
x = x - y;
乘除法:
x = x * y;
y = x / y;
x = x / y;
异或:
x = x ^ y;
y = x ^ y;
x = x ^ y;
位运算和算术运算的混合:
a = (a & b) + (a | b);
b = a + (~b) + 1;
a = a + (~b) + 1;
第三行是a = a - b
,它也适用于负数
使用
x = x * y;
y = x / y;
x = x / y;
仅适用于非零数字。
我知道如何在不使用临时变量的情况下交换 2 个数字。但是如果 number 为负数,则此算法不起作用。如何在不使用第三个变量的情况下解决这个问题。
a=a+b,
b=a-b
a=a-b
如果其中一个号码是 negative
,则它不起作用。
在此 Link 中,您可以找到在不使用临时变量的情况下交换两个变量中的值的不同方法。它显示了优点和缺点。
它展示了如何用 6 种编程语言来实现。
以下方法摘自link:
加减法:
x = x + y;
y = x - y;
x = x - y;
乘除法:
x = x * y;
y = x / y;
x = x / y;
异或:
x = x ^ y;
y = x ^ y;
x = x ^ y;
位运算和算术运算的混合:
a = (a & b) + (a | b);
b = a + (~b) + 1;
a = a + (~b) + 1;
第三行是a = a - b
,它也适用于负数
使用
x = x * y;
y = x / y;
x = x / y;
仅适用于非零数字。