给定int a和intb,在不使用if-else等比较和判断运算符的情况下返回较大的那个数。若两数相同则返回任意一个。
1,2
返回:2
public int getMax(int a ,int b){ b = a-b;//此时b>>31为1则b小于0即a<b,若b>>31为0 则a>b a- = b&(b>>31); //若a<b a=a-(a-b),若a>b a=a-0 return a; }
public int[2] exchangeNum(int[2] num){ num[1] = num[0]-num[1]; num[0] = num[0]-num[1]; num[1] = num[0]+num[1]; return num; }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题