淘宝网技术人员(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.