最大数值Java版(力扣)

举报
牛哄哄的柯南 发表于 2021/05/26 12:37:02 2021/05/26
【摘要】 最大数值 编写一个方法,找出两个数字a和b中最大的那一个。不得使用if-else或其他比较运算符。 示例: 输入: a = 1, b = 2 输出: 2 题意:找出两个数的最大值,不能使用if-else或其他比较运算符。 思路:利用数学公式 求绝对值时,为了不用系统的Math.abs(),我们自己写一个: long absolute(long a) { int...

最大数值

编写一个方法,找出两个数字a和b中最大的那一个。不得使用if-else或其他比较运算符。

示例:
输入: a = 1, b = 2
输出: 2

题意:找出两个数的最大值,不能使用if-else或其他比较运算符。
思路:利用数学公式
在这里插入图片描述
求绝对值时,为了不用系统的Math.abs(),我们自己写一个:

long absolute(long a) { int flag = (int) (a >> 63); //a为正数flag = 0,a为负数flag = -1 return (flag ^ a) - flag; //任何数与0异或值不变,任何数与-1异或等价于按位取反
}

  
 
  • 1
  • 2
  • 3
  • 4

正确代码:

class Solution { long absolute(long a) { int flag = (int) (a >> 63); //a为正数flag = 0,a为负数flag = -1 return (flag ^ a) - flag; //任何数与0异或值不变,任何数与-1异或等价于按位取反 } public int maximum(int a, int b) { long aa=a; long bb=b; int num=(int)((absolute(aa-bb)+aa+bb)/2); return num; }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

完整代码(含测试代码):

package com.Keafmd.day0103;

/**
 * Keafmd
 *
 * @ClassName: Maximum
 * @Description: 最大数值
 * @author: 牛哄哄的柯南
 * @date: 2021-01-03 19:39
 */
public class Maximum { public static void main(String[] args) { Solution solution = new Solution(); int a=8,b=-26; int result = solution01032.maximum(a,b); System.out.println(result); }
}


class Solution { long absolute(long a) { int flag = (int) (a >> 63); //a为正数flag = 0,a为负数flag = -1 return (flag ^ a) - flag; //任何数与0异或值不变,任何数与-1异或等价于按位取反 } public int maximum(int a, int b) { long aa=a; long bb=b; int num=(int)((absolute(aa-bb)+aa+bb)/2); return num; }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

输出结果:

8

Process finished with exit code 0

  
 
  • 1
  • 2
  • 3

看完如果对你有帮助,感谢点赞支持!
如果你是电脑端,看到右下角的 “一键三连” 了吗,没错点它[哈哈]

在这里插入图片描述
加油!

共同努力!

Keafmd

文章来源: keafmd.blog.csdn.net,作者:牛哄哄的柯南,版权归原作者所有,如需转载,请联系作者。

原文链接:keafmd.blog.csdn.net/article/details/112150902

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。