我想在 js 中编写一个递归函数来计算十进制数的二进制表示。
我确实设法通过以下方式解决了这个问题:
var t = (function f(n, s)
{
return((s = (n % 2) + s) && (n == 0)) ? s : f(Math.floor(n / 2), s);
})(4, '');
console.log(t);
小提琴:http: //jsbin.com/ihezev/3/edit
但是,我无法摆脱前导零。
因此,如果我使用 7 执行 IIFE,它会产生 : 0111
并且我想要111
。
我怎样才能摆脱领先0
?
(请不要使用字符串替换解决方案。我想尽可能保持优雅。我知道我可以做到alert(Number(234).toString(2))
,但这个问题被标记为递归。)