【发布时间】:2021-03-15 23:55:01
【问题描述】:
我想在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)),但这个问题被标记为递归。) p>
【问题讨论】:
标签: javascript recursion binary