首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

互换a和b的值

2012-12-28 
交换a和b的值//交换a和b的值public void swap(int a ,int b){??? int temp a??? a b??? b temp}

交换a和b的值

//交换a和b的值

public void swap(int a ,int b){
??? int temp = a;
??? a = b;
??? b = temp;
}


要求:修改此方法,不能定义temp中间变量,实现值得交换

?

方法一:

public void swap(int a ,int b){b = a + b;a = b - a;b = b - a;System.out.println(" a = " + a );System.out.println(" b = " + b );} 

?缺点:可能有数字越界问题,假设 a = INT.MAXVALUE
b = INT.MAXVALUE

?

方法二:就是异或操作
a=a^b;
b=b^a;
a=b^a;

?

public class XOR {        /**      * @param args      */      public static void main(String[] args) {                    int c=3,d=5;          swap(c,d);          System.out.println(c+";"+d);      }            public static void swap(int a, int b){          System.out.println(a+","+b);          a   = a^b;          b   = b^a;          a   = a^b;          System.out.println(a+","+b);      }  }  

?方法三:

?

int x = 10;int y = 20;x = y+0*(y=x); 

?问题:

可能会有隐藏变量

?

参考:http://www.iteye.com/topic/645596

?

热点排行