简单一题,先中者有分
如何不通过中间变量,交换两整型变量的值? 问题点数:50、回复次数:29Top
1 楼Un1()回复于 2000-08-04 11:47:00 得分 5
push a
push b
pop a
pop b
Top
2 楼softsprite(软件精灵)回复于 2000-08-04 16:27:00 得分 11
int a, b;
a = a + b;
b = a - b;
a = a - b;
Top
3 楼softsprite(软件精灵)回复于 2000-08-04 16:30:00 得分 0
int a, b;
a = a + b;
b = a - b;
a = a - b;Top
4 楼softsprite(软件精灵)回复于 2000-08-04 16:30:00 得分 0
a = a + b;
b = a - b;
a = a - b;Top
5 楼softsprite(软件精灵)回复于 2000-08-04 16:30:00 得分 0
a = a + b;
b = a - b;
a = a - b;Top
6 楼softsprite(软件精灵)回复于 2000-08-04 16:32:00 得分 0
int a, b;
a = a + b;
b = a - b;
a = a - b;Top
7 楼Holly()回复于 2000-08-04 16:56:00 得分 7
int Var1 = 1;
int Var2 = 2;
Var1 = Var1 + Var2;
Var2 = Var1 - Var2;
Var1 = Var1 - Var2;
// now Var1 = 2, Var2 = 1;Top
8 楼windyson(windyson)回复于 2000-08-04 19:33:00 得分 7
x=x+y;
y=x-2*y;
x=(x-y)/2;
y=x+y;
纯属数学游戏,呵呵,不过好像80年代就编程老前辈深有体会,节约变量Top
9 楼hand(hand)回复于 2000-08-04 19:59:00 得分 20
why not
a=a^b;
b=a^b;
a=a^b;Top
10 楼softsprite(软件精灵)回复于 2000-08-05 00:32:00 得分 0
说一声:sorry! 因为CSDN的问题,提交了几十遍也不成功,结果造成了我回答了十九遍之多!!不过我还是觉得我的回答最切题,仿佛有点当年参加全国青少年计算机编程竞赛的感觉!
笑虎(smile_tiger)是否觉得CSDN无人或无趣?
还得提一句老话,CSDN有些慢,整个下午我无法回答问题!Top
11 楼mars22(三月瓜)回复于 2000-08-06 16:08:00 得分 0
似乎应该考虑数据有没有越界.
稍微判断一下再把加法乘法用上去,
就严谨稳健多了.
代码长一点不怕什么,
每种情况还是只运行自己的分支.Top
12 楼Smile_Tiger(笑面虎)回复于 2000-08-07 11:35:00 得分 0
哈哈哈,sorry,我收回我说的后面那半句话
我所看到的精简代码:
#define ExChange(a,b) (a)^=(b)^=(a)^=(b)
就象一列4车厢的火车^_^
Top
13 楼iforever(iforever)回复于 2000-08-10 10:01:00 得分 0
这种问题不觉得无聊吗Top




