0 0

java面试题5

一个方法,传入两个参数,都是int值,不用if语句,也不能用三目运算符,返回最大的那个数。
OO 
2009年7月01日 23:33

12个答案 按时间排序 按投票排序

0 0

朋友,问题要自动关闭啦,结分哦

2009年7月15日 08:59
0 0

Math.max(a,b)不就行了...

2009年7月13日 11:27
0 0

写个简单点的,不过用到了Abs

public maxNum(int num1, int num2)
{
    int tempNum = num1 - num2;
    return (num1 + num2 + Abs(tempNum)) / 2;
}

2009年7月10日 13:49
0 0

考小技巧,用处不大,

2009年7月09日 17:04
0 0

return Math.max(i, j); 
兄弟max()使用了三目运算符

2009年7月08日 13:21
0 0

public int max(int i, int j) {
  return Math.max(i, j);
}

2009年7月03日 23:25
0 0


public max(int i, int j) {
  return Math.max(i, j);
}

2009年7月03日 23:25
0 0

用HashMap感觉有点赖,因为HashMap的实现肯定是用了if的。

2009年7月02日 19:12
0 0

不给控制流也无所谓,利用短路表达式 ……

int max6(int x, int y) {
	boolean _ = (x > y) && ((y = x) > 0); // > 0 只是为了让式子合法 ……
	return y;
}


话说,还能利用 map。
int max7(int x, int y) {
	HashMap<Boolean, Integer> m = new HashMap<Boolean, Integer>();
	m.put(true, x);
	m.put(false, y);
	return m.get(x > y);
}


题外,控制流没什么了不起的,用 lambda 能把它们全部写出来。

2009年7月02日 11:07
0 0

似乎javaeye有人提过类似的问题,不过那个更狠,if, for, while等条件判断和控制语句都不能用。
一个有趣的思路:

int max(int a, int b) {
    int[] c = { a, b };
    int[][] d = { { 0, a }, { b, 0 } };
    d[0][0] = d[1][1] = c[(a - b) >>> 31];
    return d[a >>> 31][b >>> 31];
}

2009年7月02日 07:35
0 0

总结一下刚才跟night_stalker老兄讨论的结果:

public class MaxWithoutIf {    
    private static int max1(int x, int y) {
        int d = x - y;
        int doz = d & (~(d ^ ((x ^ y) & (d ^ x))) >> 31);
        return y + doz;
    }
    
    private static int max2(int x, int y) {
        int d = x - y;
        switch (d >> 31 | -d >>> 31) {
        case 1: return x;
        default: return y;
        }
    }
    
    private static int max3(int x, int y) {
        for ( ; x > y; ) return x;
        return y;
    }
    
    private static int max4(int x, int y) {
        while (x > y) return x;
        return y;
    }
    
    public static void main(String[] args) {
        int x = Integer.parseInt(args[0]);
        int y = Integer.parseInt(args[1]);
        int m = max1(x, y);
        System.out.println(m);
    }
}

max3和max4是night_stalker老兄提供的。真好,对付考官就应该这样 T T

2009年7月02日 01:44
0 0

这考的是位运算啊……真阴险 = =

public class x {
    private static int max(int x, int y) {
        int d = x - y;
        int doz = d & ((~(d ^ ((x ^ y) & (d ^ x)))) >> 31);
        return y + doz;
    }
    
    public static void main(String[] args) {
        int x = -30, y = -12;
        int m = max(x, y);
        System.out.println(m);
    }
}

2009年7月02日 00:58

相关推荐

    java面试题,J2EE面试题 笔试题

    最全的j2EE面试题,题量...8、java面试题及答案 9、java面试题编程篇 10、Oracle面试题 11、Oracle企业面试题集锦 12、Spring面试题 13、SSH面试题 14、Strut+Spring+Hibernate面试题 15、张孝祥整理Java就业面试题大全

    java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集.zip

    Java面试题以及答案(小生).pdf java面试题(题库全).doc JS 数据库答案.doc Land.the.Tech.Job.You.Love-人人都有好工作—IT行业求职面试必读.pdf Linux命令大全完整版.doc sql查询语句练习.doc Web服务器的工作...

    汇丰软件java面试题

    "汇丰软件Java面试题详解" 汇丰软件Java面试题是许多IT行业新人的梦寐以求的岗位,需要考生具备扎实的Java基础知识和良好的编程能力。以下是对汇丰软件Java面试题的详细解析。 笔试部分 笔试部分主要包含三部分:...

    java面试资料java面试题集java笔试题汇总资料

    java面试资料java面试题集java笔试题汇总资料,java面试资料java面试题集java笔试题汇总资料,java面试资料java面试题集java笔试题汇总资料,包括基础面试题、JavaWeb面试题、JAVA面试题集.txt、分布式相关面试题...

    java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB.zip

    Java面试题以及答案(小生).pdf java面试题(题库全).doc JS 数据库答案.doc Land.the.Tech.Job.You.Love-人人都有好工作—IT行业求职面试必读.pdf Linux命令大全完整版.doc sql查询语句练习.doc Web服务器的工作...

    java笔记java笔试题 java面试题

    这份"java笔记java笔试题 java面试题"的资源无疑是准备Java程序员的笔试和面试时的重要参考资料。以下是一些关键的Java知识点,这些内容可能会在笔记或面试中出现: 1. **Java基础**:Java的基础语法包括数据类型...

Global site tag (gtag.js) - Google Analytics