黑马程序员技术交流社区

标题: 用尽可能多的方式实现两个整数值互换(史上最全)! [打印本页]

作者: Joschi    时间: 2016-3-24 18:59
标题: 用尽可能多的方式实现两个整数值互换(史上最全)!
  1. /*
  2. * 需求:用尽可能多的方法实现两个整数的互换
  3. */
  4. public class ExchangeTest {
  5.         public static void main(String[] args) {
  6.                 int a = 10;
  7.                 int b = 20;

  8.                 //方式1  引入第三方变量(开发中用)
  9.                 int temp = a;
  10.                 a = b;
  11.                 b = temp;
  12.                
  13.                 System.out.println("a:"+a+",b:"+b);
  14.                 System.out.println("-----------------");
  15.                
  16.                 //方式2 a+b和的方式
  17.                 a = a + b; //30
  18.                 b = a - b; //30 - 20 = 10
  19.                 a = a - b; //30 - 10 = 20
  20.                
  21.                 System.out.println("a:"+a+",b:"+b);
  22.                 System.out.println("-----------------");
  23.                
  24.                 //方式3  异或的方式
  25.                 a = a ^ b;
  26.                 b = a ^ b; //a^b^b = a
  27.                 a = a ^ b; //a^b^a = b

  28.                 System.out.println("a:"+a+",b:"+b);
  29.                 System.out.println("-----------------");
  30.                
  31.                 //方式4 一句话搞定加减法
  32.                 b = (a + b) - (a = b);
  33.                
  34.                 System.out.println("a:"+a+",b:"+b);
  35.                 System.out.println("-----------------");
  36.                
  37.                 //方式5 一句话搞定乘除法
  38.                 b = (a*b)/(a=b);
  39.                
  40.                 System.out.println("a:"+a+",b:"+b);
  41.                 System.out.println("-----------------");
  42.                
  43.         }
  44. }
复制代码

作者: lgdbest    时间: 2016-3-24 19:19
就第一种最常用 其他和没有一样的
作者: 天生player    时间: 2016-3-24 19:24
其实多学一点更好,因为可能会碰到不同的问题,就需要用到这个了,谢谢楼主




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2