首页 > 试题广场 >

不用做任何比较判断运算符找出两个整数中的较大的值

[编程题]不用做任何比较判断运算符找出两个整数中的较大的值
  • 热度指数:1139 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定两个32位整数a和b,返回a和b中较大的,要求不能用任何比较判断运算符。

输入描述:
输出两个整数a和b,a和b均为32位整数。


输出描述:
输出一个整数,两个数中较大的那一个。
示例1

输入

1 0

输出

1

备注:
时间复杂度,额外空间复杂度
头像 whoway
发表于 2020-07-27 17:58:55
注意点: a-b可能会溢出至于,为什么牛客网有的没有考虑可能溢出也AC了,似乎是因为牛客的测试数据不够严格。 解法1 用64位的数据进行扩展,这样就能防止溢出了。 思路: 1)aa-bb<0,由于是有符号位右移。最终,右移63位,得到的是-1,那么乘以-1,修正,那样正好能输出soluti 展开全文
头像 无知201711121742531
发表于 2019-08-30 14:54:05
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nex 展开全文