java 不使用中间变量交换两个整型变量

一,使用加减实现

/**
     * 算术运算 + -
     * a=3 b=4
     * a=a+b  a=7 b=4
     * b=a-b  a=7 b=3
     * a=a-b  a=4 b=3
     *
     */
    public static void test1(int a,int b){
        a=a+b;
        b=a-b;
        a=a-b;
        System.out.println(a);
        System.out.println(b);
    }

二,使用乘除实现

/**
     * 算术运算 * /
     *a=3 b=4
     * a=a*b a=12 b=4
     * b=a/b a=12 b=3
     * a=a/b a=4  b=3
     */
    public static void test3(int a,int b){
        a=a*b;
        b=a/b;
        a=a/b;
        System.out.println(a);
        System.out.println(b);
    }

三,使用位异或^

    /**
     * 使用位异或:如果相同则为0,不相同则为1。
     * a= 3     b=4
     * 011      100
     * a=a^b:
     *      011
     *      100
     *      000    a=0 b=4
     * b=b^a
     *      100
     *      000
     *      011 a=0 b=3
     * a=a^b
     *      000
     *      011
     *      100 a=4 b=3
     * a=4 b=3
     */
    public static void test2(int a,int b){
        a = a^b;
        b = b^a;
        a = a^b;
        System.out.println(a);
        System.out.println(b);
    }

四,使用栈实现

/**
     * 使用栈实现
     *
     */
    public static void test4(int a,int b){
        Stack<Integer> s=new Stack<Integer>();
        s.push(a);
        s.push(b);
        a=s.pop();
        b=s.pop();
        System.out.println(a);
        System.out.println(b);
    }

猜你喜欢

转载自blog.csdn.net/qq_33371372/article/details/81486634