版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzc2608/article/details/81177653
#include <iostream>
using namespace std;
int flip(int n)
{
return n ^ 1;
}
int sign(int n)
{
return flip(n >> 31 & 1);
}
int getMax1(int a, int b)
{
int c = a - b;
int scA = sign(c);
int scB = flip(scA);
return a * scA + b * scB;
}
int getmax2(int a, int b)
{
int c = a - b;
int scA = sign(a);
int scB = sign(b);
int scC = sign(c);
int difSab = scA ^ scB;
int samSab = flip(difSab);
int returnA = difSab * scA + samSab * scC;
int returnB = flip(returnA);
return a * returnA + b * returnB;
}
int main()
{
int a, b;
cin >> a >> b;
cout << getMax1(a, b) << endl;
cout << getmax2(a, b) << endl;
}