求解一道题目

2012 年 2 月 23 日
 Aben
今天一个小同学分享了,想了3个小时,没有解出来。
原题目是
------------------------------------
if(a>100){b=1}else{b=0}
只用加减乘除和Math对象。实现同样的效果
------------------------------------
我目前的进度:

b = Math.ceil( Math.min( Math.abs( Math.min( 100 - a, 0 ) ), 1) )

这样能判断所有的数字,+-Infinity 也是可以的,但是 NaN 和 字母等结果为 NaN .
如果允许使用 isNaN,那么可以完全实现(求验证)。

b = 1 - isNaN ( b / b );

Tips:
NaN --> Not a Number,但是他又是 Number 类型。参与任何运算的结果都为 NaN.
有一条例外定律就是,任何数的0次方都为1。Math.pow(NaN,0)==1;

我目前的结论是:此题无解...
4491 次点击
所在节点    问与答
9 条回复
013231
2012 年 2 月 23 日
013231
2012 年 2 月 23 日
哦, 我忘记nan了.
raptium
2012 年 2 月 23 日
NaN > 100 应该得到啥?
013231
2012 年 2 月 23 日
@raptium false
icyflash
2012 年 2 月 23 日
C#飘过,NaN不管啥操作都返回NaN...
Aben
2012 年 2 月 23 日
@013231 a = -Infinity , b = -1.
iceseaboy
2012 年 2 月 23 日
此题明显属于命题不完整, 你还真的就一直钻进去了

那如果a = {} ,你又如何呢
a > {} == false
a < {} == false
iceseaboy
2012 年 2 月 23 日
V2EX为什么就不能修改回复呢...害得我写错了改不了
100 > {} == false
100 < {} == false
013231
2012 年 2 月 23 日
@Aben 修复这个bug倒是简单:
http://gist.github.com/1890240
NaN依旧无解.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/27938

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX