佚名通过本文主要向大家介绍了如何将负数转换成正数,负数转换成正数,正数转换负数,负数转换为正数,如何将正数转换为负数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:如何快速地把正数转换成1,负数转换成-1?
描述:
解决方案1:
描述:
如何快速地把正数转换成1,负数转换成-1?
解决方案1:
function f(n) {
return n < 2*n ? 1:-1;
}
既然题主说的是 正数 or 负数 是不是应该考虑0?
function f1(number){
if(+number){
throw new TypeError('只接受number 并且是大于0 or 小于0);
}
return number / Math.abs(number);
}
解决方案3:javascript
function f1(n) { return n === 0 ? 0 : n > 0 ? 1 : -1; }
javascript
function f2(n) { return n === 0 ? 0 : n / Math.abs(n); }
javascript
function f3(n) { return n === 0 ? 0 : ~~n.toString().replace(/(-?).*/, "$11") }
注意: 由于非0 除以 0 是 Infinity
或 -Infinity
,而这两个值不会被判 false
,所以下面的 f2_ex
就不对了,留下在这里作为警示。
javascript
function f2_ex(n) { // not correct while n is a non-zero number return n / Math.abs(n) || 0 }
@bf 補充:
nodejs 參考值:運行 1000000 次,
f1: 10ms
f2: 1ms
f3: 402ms
f2_ex: 417ms