创建递归二进制到十进制函数

时间:2014-01-21 16:11:54

标签: javascript recursion

我正在尝试创建递归二进制到十进制函数。这是我目前的尝试:

function decToBin(num){
    if(num >= 1){
        (num % 2); //I have to STORE? this somewhere
        decToBin(Math.floor(num/2));
    } 
    // return my stored value here


}

我想取每个新数字的模数,直到它为0.我如何存储函数的每个传递?我只是在函数范围之外创建一个全局变量,还是有更好的方法?谢谢!

1 个答案:

答案 0 :(得分:1)

通常使用递归函数,将“当前值”与下一次迭代的返回值组合在一起。因此,您将所有“返回值”并将它们组合在一起。

在这种情况下,您需要以下内容:

return decToBin(Math.floor(num/2))+(num % 2);

从而完成整个功能:

function decToBin(num){
    if(num >= 1){
        return decToBin(Math.floor(num/2))+(num % 2);
    } 
    return '';
}