限定:
定义两个变量,在不适用第三个变量的情况下将两个变量互换
方法一:数学加减运算方式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 operationa = a ^ b; // a now contains the XOR of a and bSystem.out.println("a =a ^ b: " + a);b = a ^ b; // b is now the original value of aSystem.out.println("a = a ^ b: " + b);a = a ^ b; // a is now the original value of bSystem.out.println("a =a ^ b: " + a);System.out.println("After swap:");System.out.println("a = " + a);System.out.println("b = " + b);}
}