import java.util.Scanner; /** * @ClassName Main * @Description TODO * @Author Wlison * @Date 2020/4/20 15:47 * @Version 1.0 **/ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int a = sc.nextInt(); int b = sc.nextInt(); int c = (a-b)>>>31; System.out.println(a-(a-b)*c); } } }
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] params = br.readLine().split(" "); int a = Integer.parseInt(params[0]), b = Integer.parseInt(params[1]); int c = a - b; int sa = sign(a); // a的符号 int sb = sign(b); // b的符号 int sc = sign(c); // c的符号 int difSab = sa ^ sb; // a与b符号不同为1,反之为0 int sameSab = 1 - difSab; // a与b符号相同为1,反之为0 int returnA = difSab * sa + sameSab * sc; // 符号相同时a大,sc=1,b大sc=0,符号不同时a为正就返回a int returnB = 1 - returnA; // 与returnA互斥,返回a就不返回b,返回b就不返回a System.out.println(returnA * a + returnB * b); } private static int sign(int num) { return 1 - ((num >> 31) & 1); // 负数返回0,正数返回1 } }
// ConsoleApplication2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> int main() { int a,b; scanf("%d %d", &a, &b); std::cout<<((a+b)+abs(a-b))/2; }
#include <iostream> using namespace std; // 0为正数 1为负数 int sign(int x){ return (x >> 31) & 1; } // 反转 int flip(int x){ return x ^ 1; } int main(void){ int a, b; cin >> a >> b; // int signA = sign(a); int signB = sign(b); int signC = sign(a - b); //A B同号 A - B > 0 //A B异号 A > 0 B < 0 int returnA = flip(signA ^ signB) * flip(signC) + (signA ^ signB) * flip(signA) * signB; int returnB = flip(returnA); cout << returnA * a + returnB * b << endl; return 0; }
#include <iostream> using namespace std; int main(){ int a,b; cin>>a>>b; b = a-b; // b 可能是正,也可能是负 // 如果b 为正,则说明 a > b ,则 b>>31 等于0,b&0 也是0,然后 a-=0 等于a // 如果b 为负,则说明 a < b, 则 b>>31 等于-1,b&-1 等于b,注意此时b是负数 // 然后 a-=b 就可以得到最大值 a-= (b & b>>31); cout<<a<<endl; return 0; }
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); while(scanner.hasNext()){ int a = scanner.nextInt(); int b = scanner.nextInt(); System.out.println(getMax(a,b)); } } public static int getMax(int a, int b) { b = a-b; a -= b&(b>>31); return a; } }