淘宝网技术人员(Java)笔试卷

今天参加淘宝的笔试,第一道题就没做出。题目是:不使用另外的变量,交换整型变量x和y的值,假设x、y的取值范围在0-5000之间。

后面回来想了一下,觉得用移位就可以搞定:

int a =232, b = 12;

a=a<<16;

b=b|a;

a=b&0x0000FFFF;

b=b>>16;

System.out.println("a: "+a+" b: "+b ); 

 

后来在网上搜了一下有个更加简单的两个方法:

第一个:

 a= a + b;

b= a - b;

a= a - b 

第二个一条语句就可以搞定:a = b +(b = a)*0.           

 

posted @ 2009-02-28 20:29  Eric Young  阅读(589)  评论(2编辑  收藏  举报