这个程序你能写出来吗?
昨天老大跟我们说了个程序题,输入两个整数,不通过第三个变量能把它们的值交换过来(如a=1,b=2结果a=2,b=1),你能定出吗?
------解决方案--------------------a=1; 
 b=2; 
 a=b+a; 
 b=a-b; 
 a=a-b;
------解决方案--------------------呵呵。这个题c/c++的考试经常碰到。往往是要求速度最快。 
 2个变量按位异或运算3次   
 a= a^b; 
 b= a^b; 
 a= a^b;
------解决方案--------------------a=b+a; 
 b=a-b; 
 a=a-b;     
 这个有可能会超过int的最大值
------解决方案--------------------顶 
------解决方案--------------------a=b+0*(b=a);
------解决方案--------------------这种没什么意义, 
 能写出来,可就是不经济了
------解决方案--------------------八戒 
 能否给讲讲为什么这么写,无耻下问
------解决方案--------------------风过无痕 
 Red_angelX(八戒) 很帅嘛
------解决方案--------------------把^用于int是什么意思,MSDN帮助上写得比较模糊,谁帮解释解释,谢谢.
------解决方案--------------------基本的算法! 
 金字塔 迭代 ........!
------解决方案--------------------測試了一下,樓主的: 
         int a = 1; 
         int b = 22; 
         a = ((a + b) + Math.Abs(a - b)) / 2; 
         b = ((a + b) - b - Math.Abs(a - b)) / 2; 
 應該是錯的。 
 結果為: 
 a=22 
 b=11
------解决方案--------------------//来个全的,都是一条语句搞定   
 int a = int.MaxValue; 
 int b = int.MinValue;   
 a = b | (b = a) & 0; 
 b = a + (a = b) * 0; 
 a ^= b ^ (b ^= a ^ b);   
 Console.WriteLine(string.Format( "a={0},b{1} ", a, b));
------解决方案--------------------都N多人问了
------解决方案--------------------up
------解决方案--------------------a^=b^=a^=b;
------解决方案--------------------n多人问过这问题。 
 a=b+a  
 b=a-b 
 a=a-b   
------解决方案--------------------a=b+0*(b=a); 
 这个太帅了
------解决方案--------------------独孤求败的 有待考证!
------解决方案--------------------各路神仙,各显神通阿, 
 a= a^b; 
 b= a^b; 
 a= a^b;
------解决方案--------------------a=b+0*(b=a); 
 在快速排序就使用这个