我正在尝试创建递归二进制到十进制函数。这是我目前的尝试:
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.我如何存储函数的每个传递?我只是在函数范围之外创建一个全局变量,还是有更好的方法?谢谢!
答案 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 '';
}