Moderate Swap不用临时变量 @CareerCup

来源:互联网 发布:linux系统初始化脚本 编辑:程序博客网 时间:2024/05/18 02:46

经典Swap问题,注意用异或时,不同让两个参数指向同一个变量!


package Moderate;/** *  * Write a function to swap a number in place without temporary variables. *  * 译文: *  * 写一个函数交换两个数,不能使用临时变量。 */public class Moderate {public static void swap(int a, int b) {// Example for a = 9, b = 4a = a - b; // a = 9 - 4 = 5b = a + b; // b = 5 + 4 = 9a = b - a; // a = 9 - 5System.out.println("a: " + a);System.out.println("b: " + b);}// 注意这种方法当a,b是同一个变量时会有问题!public static void swap_opt(int a, int b) {a = a ^ b;b = a ^ b;a = a ^ b;System.out.println("a: " + a);System.out.println("b: " + b);}public static void main(String[] args) {int a = 1672;int b = 9332;System.out.println("a: " + a);System.out.println("b: " + b);swap(a, b);swap_opt(a, b);}}


原创粉丝点击