10 進数のバイナリ表現を計算するために 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
ただし、先頭のゼロを取り除くことはできません。
したがって、IIFE を 7 で実行すると、次の結果が得られ 0111
ます111
。
どうすれば先頭を取り除くことができ0
ますか?
(文字列置換ソリューションなしでお願いします。できる限りエレガントに保ちたい..できることはわかっていますalert(Number(234).toString(2))
が、この質問は再帰としてタグ付けされています。)