对于两个32位整数a和b,请设计一个算法返回a和b中较大的。但是不能用任何比较判断。若两数相同,返回任意一个。
给定两个整数a和b,请返回较大的数。
class Compare {
public:
int foo(int n){ //n为正返回0,n为负返回1;
return n^1;
}
int sign(int n){ //为负返回1,为正返回0。
return (n>>31)&1;
}
int getMax(int a, int b) {
// write code here
int c=a-b;
int temp=sign(c);
int temp2=foo(temp);
return temp*b+temp2*a;
}
};