这个程序你能写出来吗?
昨天老大跟我们说了个程序题,输入两个整数,不通过第三个变量能把它们的值交换过来(如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);
在快速排序就使用这个