不申请额外内存空间就可以完成数据互换的算法.(一行搞定)

原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。

http://www.cnblogs.com/JackKing-defier/p/4287741.html                       

不申请额外内存空间的情况下,互换两个整型变量的值。

之前在网上和一些书籍中了解到的版本是:

1 a = a + b; 
2 b = a - b;
3 a = a - b; 

我又做了一点点努力,把它浓缩成为了一行:

b = (a + b) - (a = b);

用Java编写如下:

 1 public class Exchange {
 2     /**
 3      * @author Jack King
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         int a = 3;
 9         int b = 5;
10         System.out.println("The origianl a is: "+ a);
11         System.out.println("The origianl b is: "+ b);
12         b = (a + b) - (a = b);
13         System.out.println("After exhanged.");
14         System.out.println("a is: "+ a);
15         System.out.println("b is: "+ b);
16     }
17 }

核心代码为" b = (a + b) - (a = b);"
只需要一行就可以实现两个整型变量的互换。:)

原文地址:https://www.cnblogs.com/JackKing-defier/p/4287741.html