题解 | 交换变量值

交换变量值

https://www.nowcoder.com/practice/bd243c9bef70492f91959cc5556546a8

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();

        //write your code here.......
        
        // 常规
        a += b;
        b = a - b;
        a -= b;
        /*
        原理:
        a = a + b;就是常规的加法
        b = (a + b) - b = a; // 此时得到a的值
        a = a - b = (a + b) - a = b; // 得到b的值

        例子:
        a = 5;
        b = 8;

        a = a + b = 5 + 8 = 13;
        b = a - b = 5 + 8 - 5 = 8;
        a = a - b = 13 - 8 = 5;
        */

        // 位运算
        a = a^b;
        b = a^b;
        a = a^b;
        // 把常规通过运算符优先级一行代码实现
        a = (a + b) - (b = a);
        System.out.println(a+" "+b);
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务