限定:
定义两个变量,在不适用第三个变量的情况下将两个变量互换
方法一:数学加减运算方式compute方法
方法二: 位运算异或方式XOR方法
package com.huawei.od.huawei.algorithm;
/**
* @ClassName: Main
* @Desc: 定义两个变量,在不适用第三个变量的情况下将两个变量互换
* @create: 2024-09-02 16:40
* @version: V1.0
**/
public class Main {
public static void main(String[] args) {
int a = 1;
int b = 2;
//数学计算方式
compute(a, b);
//位运算
XOR(a,b);
}
static void compute(int a, int b) {
//数学公式计算
a = a + b; // a+b赋给a,得总和
System.out.println(a);
b = a - b; // a-b赋给b,得原a值
System.out.println(b);
a = a - b;// a-b赋给a,得原b值
System.out.println(a);
}
static void XOR(int a, int b) {
// 例如,我们有两个二进制数 a 和 b:
//
// a = 6 (二进制: 0110)
// b = 3 (二进制: 0011)
// 进行 XOR 运算:
//
// 0110
// ^ 0011
// ----
// 0101 (二进制,十进制为 5)
// 所以,如果 a 原本是 6,b 原本是 3,执行 a = a ^ b; 后,a 的新值将是 5。
System.out.println("Before swap:");
System.out.println("a = " + a);
System.out.println("b = " + b);
// Swap using XOR bitwise operation
a = a ^ b; // a now contains the XOR of a and b
System.out.println("a =a ^ b: " + a);
b = a ^ b; // b is now the original value of a
System.out.println("a = a ^ b: " + b);
a = a ^ b; // a is now the original value of b
System.out.println("a =a ^ b: " + a);
System.out.println("After swap:");
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}