题解 | 交换变量值

交换变量值

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);
    }
}

全部评论

相关推荐

迟缓的斜杠青年巴比Q了:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
真烦好烦真烦:牛友太有实力了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务