论坛首页 Java企业应用论坛

不用判断语句求俩数中的大(或者小)数

浏览 47948 次
精华帖 (0) :: 良好帖 (16) :: 新手帖 (3) :: 隐藏帖 (1)
作者 正文
   发表时间:2009-12-10  
我挖了个坟
http://www.chinaunix.net/jh/23/422544.html
0 请登录后投票
   发表时间:2009-12-10   最后修改:2009-12-10
其实用这种题考数学知识没太大意思。题目太大路,要么不知道,要么都是google面筋来的.
如果要考数学知识,就因该问这样的题目。恩比如说
我们现在知道自然数集N,同时也知道了自然数的加法,但是我们尚不知道负数与减法的存在,你能通过加法构造出减法和负数么?并且说明为什么你构造的数系能够与我们的日常经验保持一致?
0 请登录后投票
   发表时间:2009-12-10  
看了这么多,觉得楼主的办法和那个左移都很好,毕竟就是看看思维,不一定要解的多准确
0 请登录后投票
   发表时间:2009-12-10  
night_stalker 写道
Trustno1 写道
int max(int x,int y)
{
return x ^ ((x ^ y) & -(x < y));
}

这是 C …… 太适合做 bit 运算了。题目的难点之一便是用 java ……

嘛,各种奇怪的解答都是有的:
def max x, y
  [y, x, x][(x <=> y) + 1]
end




sub max {
    (@_, $_[1])[($_[1] <=> $_[0]) + 1];
}

0 请登录后投票
   发表时间:2009-12-10  
iaimstar 写道
superxielei 写道
int getMaxNum(int a,int b){
  double x = (double)a;
  double y = (double)b;
  return (int)(x/2+y/2+Math.abs(x/2-y/2));
}

你这个方法
不错
如果是考数学基础的话,楼主就悲剧了

如果可以用Math.abs的话,为什么不可以用Math.max呢?岂不更简单?
0 请登录后投票
   发表时间:2009-12-10   最后修改:2009-12-10
Trustno1 写道
其实用这种题考数学知识没太大意思。题目太大路,要么不知道,要么都是google面筋来的.
如果要考数学知识,就因该问这样的题目。恩比如说
我们现在知道自然数集N,同时也知道了自然数的加法,但是我们尚不知道负数与减法的存在,你能通过加法构造出减法和负数么?并且说明为什么你构造的数系能够与我们的日常经验保持一致?


这样成不:

因为:
5 + 10 == 15

如果这样看:
(5+) 10 == 15

那么:
10 == 15 (5+)

所以:
5+  就是 -5

总结:
  • 左式的格式必须为  ^(X+)*(X)$
  • (X+) 从左式移动到右式,保持不变
  • (X) 从左式移动到右式,要变成 (X+)


因此:

(3+) (4+) 5 == 12
=> (3+) 5 = 12 4(+)
=> 3 = 12 (4+) (5+)

从右式移动到左式,还需要更多的规则  ...


0 请登录后投票
   发表时间:2009-12-10  
night_stalker 写道
tinywind 写道
  static int max(int a, int b){
    int r[]={a,b};
    return r[(a-b)>>>31];
  }



(刚刚修改了:一开始没考虑到两个相等的情况 ……)
或者
int mask = ((a-b) >>> 31) - 1;
return (a & mask) | (b & ~ mask);


既然是相等的话,那最值随便哪个都可以的吧。
0 请登录后投票
   发表时间:2009-12-10  
楼主不都说了不能用Math下面的方法吗.怎么还有人用abs啊?
我觉得楼主的方法可以
0 请登录后投票
   发表时间:2009-12-10  
topcode 写道
楼主不都说了不能用Math下面的方法吗.怎么还有人用abs啊?
我觉得楼主的方法可以

不好意思,是我之前忘了加上去的,后面才补上。
0 请登录后投票
   发表时间:2009-12-10  
iaimstar 写道

int a = 36, b = 72;
int x = ((a - b) >> 31) & 1;
int y = ((b - a) >> 31) & 1;
System.out.println( x * b + y * a + ( 1 - x - y) * a);

刚看到坟中的一个解,不知道这个有什么问题? 我认为这个是正解啊
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics